diff --git a/.github/labeler.yml b/.github/labeler.yml index 55b0ba3015af..5b585de45322 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,49 +1,67 @@ Admin: - - "code/modules/admin/**" + - any-glob-to-any-file: + - "code/modules/admin/**" # Any file within the config subfolder Config: - - "config/**" +- changed-files: + - any-glob-to-any-file: + - "config/**" Dependencies: - - "**/package.json" - - "**/package-lock.json" - - "**/yarn.lock" +- changed-files: + - any-glob-to-any-file: + - "**/package.json" + - "**/package-lock.json" + - "**/yarn.lock" # When the .DME is changed DME Edit: - - "./*.dme" - - "**/*.dme" +- changed-files: + - any-glob-to-any-file: + - "./*.dme" + - "**/*.dme" # Any .dmi changes Sprites: - - "**/*.dmi" +- changed-files: + - any-glob-to-any-file: + - "**/*.dmi" # Changes to a .dm or anything in the code subfolder Code Change: - - "**/*.dm" - - "code/**" +- changed-files: + - any-glob-to-any-file: + - "**/*.dm" + - "code/**" # Changes to a .dmm or anything in the _map subfolder Map Change: - - "**/*.dmm" - - "_maps/**" +- changed-files: + - any-glob-to-any-file: + - "**/*.dmm" + - "_maps/**" # Any changes to .ogg files are marked as sound Sound: - - "**/*.ogg" +- changed-files: + - any-glob-to-any-file: + - "**/*.ogg" # Changes to the SQL subfolder SQL: - - "SQL/**" +- changed-files: + - any-glob-to-any-file: + - "SQL/**" # Changes to the tgui subfolder tgui: - - "tgui/**" +- changed-files: + - any-glob-to-any-file: + - "tgui/**" # Changes to the .Github subfolder Github: - - ".github/**" - -Deprecated Modularization: - - "whitesands/**" +- changed-files: + - any-glob-to-any-file: + - ".github/**" 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 7a3010a995ce..fc1c42b3ec1a 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -11,6 +11,7 @@ on: - master jobs: run_linters: + if: "!contains(github.event.head_commit.message, '[ci skip]')" name: Run Linters runs-on: ubuntu-22.04 steps: @@ -67,8 +68,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 @@ -91,54 +93,34 @@ 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 + fail-fast: true + matrix: + arg: [ + "BASIC_TESTS", + "CREATE_AND_DESTROY_TEST", + "PLANET_GEN_TEST", + "RUIN_PLACEMENT_TEST", + "SHIP_PLACEMENT_TEST" + ] + uses: ./.github/workflows/run_integration_tests.yml + with: + arg: ${{ matrix.arg }} + +# 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/labeler.yml b/.github/workflows/labeler.yml index aea88c49e9fa..dc3a206fe385 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -18,7 +18,7 @@ jobs: commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request." - name: Apply labels based on changed files if: github.event_name != 'push' - uses: actions/labeler@main + uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" sync-labels: true 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..a361ecedc588 --- /dev/null +++ b/.github/workflows/run_integration_tests.yml @@ -0,0 +1,65 @@ +# 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 + arg: + required: false + default: ALL_TESTS + 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 -D${{ inputs.arg }} + - 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/tgs_test.yml b/.github/workflows/tgs_test.yml index e78cb6e400d8..a92b6cac76a3 100644 --- a/.github/workflows/tgs_test.yml +++ b/.github/workflows/tgs_test.yml @@ -35,7 +35,7 @@ env: PR_NUMBER: ${{ github.event.number }} jobs: test_tgs_docker: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Test TGS Docker runs-on: ubuntu-22.04 concurrency: @@ -47,7 +47,7 @@ jobs: env: Database__DatabaseType: Sqlite Database__ConnectionString: Data Source=TGS_TGTest.sqlite3;Mode=ReadWriteCreate - General__ConfigVersion: 4.1.0 + General__ConfigVersion: 5.0.0 General__ApiPort: ${{ env.TGS_API_PORT }} General__SetupWizardMode: Never ports: @@ -56,7 +56,7 @@ jobs: - name: Setup dotnet uses: actions/setup-dotnet@v2 with: - dotnet-version: 7.0.x + dotnet-version: 8.0.x - name: Checkout Repository uses: actions/checkout@v3 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/.vscode/settings.json b/.vscode/settings.json index ee251eb53460..ff1b67e91d23 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,14 +17,14 @@ "**/.pnp.*": true }, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" }, "files.insertFinalNewline": true, "gitlens.advanced.blame.customArguments": ["-w"], "tgstationTestExplorer.project.resultsType": "json", "[python]": { "gitlens.codeLens.symbolScopes": ["!Module"], - "editor.wordBasedSuggestions": false, + "editor.wordBasedSuggestions": "off", "editor.insertSpaces": true, "editor.tabSize": 4 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm new file mode 100644 index 000000000000..50f7b24ed353 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm @@ -0,0 +1,4729 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ac" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/structure/windoor_assembly, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"aj" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/wallframe/light_fixture/small, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered/crashed_holemaker) +"aq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/toy/figure/chaplain, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"at" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"aA" = ( +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Chapel" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"aC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 4 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"aE" = ( +/obj/structure/table, +/obj/effect/turf_decal/borderfloorblack, +/obj/machinery/airalarm/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"aL" = ( +/obj/effect/turf_decal/ntspaceworks_small/left, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"aP" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"aS" = ( +/obj/effect/turf_decal/snow, +/turf/open/floor/plating/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"bd" = ( +/turf/closed/wall/mineral/snow, +/area/ruin/unpowered/crashed_holemaker) +"bi" = ( +/obj/effect/turf_decal/snow, +/obj/machinery/firealarm/directional/east, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/weather/snow/surround{ + dir = 8 + }, +/turf/open/floor/plating/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"bj" = ( +/obj/machinery/door/airlock/glass_large{ + name = "Theatre" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"br" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"bC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"bU" = ( +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/unpowered/crashed_holemaker) +"bZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"ca" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow/surround{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered/crashed_holemaker) +"ch" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"ci" = ( +/obj/effect/turf_decal/corner/opaque/black/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/crashed_holemaker) +"cl" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"co" = ( +/obj/item/caution, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"cw" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/spider/stickyweb, +/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"cA" = ( +/obj/structure/window/spawner/west, +/obj/structure/displaycase_chassis, +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"cG" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/orange{ + icon_state = "4-10" + }, +/obj/structure/cable/orange{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"cI" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 6 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"cL" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/table/reinforced{ + color = "#283674" + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 8 + }, +/obj/structure/sign/poster/retro/nanotrasen_logo_70s{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"cS" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered/crashed_holemaker) +"cV" = ( +/obj/machinery/door/airlock/command/glass{ + dir = 4; + name = "Captain's Quarters" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"do" = ( +/obj/effect/turf_decal/corner/opaque/black/diagonal{ + dir = 4 + }, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/crashed_holemaker) +"dt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/official/work_for_a_future{ + pixel_x = 32 + }, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"eg" = ( +/obj/effect/turf_decal/corner/opaque/black/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/crashed_holemaker) +"ek" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced/spawner/west, +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/obj/item/paper_bin, +/turf/open/floor/plating/dirt/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"ey" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/snow, +/turf/open/floor/carpet/royalblue, +/area/ruin/unpowered/crashed_holemaker) +"eD" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"eE" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"eG" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"eJ" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/asteroid/ice_demon, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"eL" = ( +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"eP" = ( +/obj/effect/turf_decal/chapel{ + dir = 1 + }, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"eT" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/window/spawner, +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/obj/structure/cable/orange{ + icon_state = "4-9" + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"fn" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/brown/half{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/neutral, +/obj/item/flashlight/lantern, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"fr" = ( +/obj/machinery/door/firedoor/border_only/closed{ + dir = 8 + }, +/obj/structure/sign/departments/botany{ + pixel_y = -32 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/unpowered/crashed_holemaker) +"fx" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"fD" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"fO" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"fV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow/surround{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"ga" = ( +/obj/item/stack/cable_coil/cut/yellow, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"gc" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"ge" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/musician/piano, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"gp" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"gF" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/suit_storage_unit/open, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"gG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"gU" = ( +/obj/effect/turf_decal/borderfloorblack, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"hl" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"ho" = ( +/obj/effect/turf_decal/corner/opaque/black/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/bed/double/maint, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/crashed_holemaker) +"hs" = ( +/obj/item/stack/sheet/mineral/snow, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"hO" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"hP" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered/crashed_holemaker) +"hX" = ( +/obj/effect/turf_decal/corner/opaque/bar, +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"ib" = ( +/obj/effect/turf_decal/borderfloorblack/full, +/obj/machinery/chem_master/condimaster, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"it" = ( +/obj/item/stack/tile/plasteel, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow/surround{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"iw" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/brown/half{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"iM" = ( +/obj/effect/turf_decal/chapel{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/bed/double{ + dir = 1 + }, +/obj/item/bedsheet/dorms/double{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"iN" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"iS" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"iX" = ( +/obj/effect/turf_decal/corner/opaque/bar/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"iY" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"jj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"jp" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sink/puddle, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"jr" = ( +/obj/effect/turf_decal/snow, +/obj/structure/table_frame/wood, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"jz" = ( +/obj/structure/bed, +/obj/item/bedsheet/captain, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"jJ" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/human/corpse/assistant/husked, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"jP" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/light/bulb/broken, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered/crashed_holemaker) +"jT" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/beige/half{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/stool/bar{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"jU" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/weather/snow{ + dir = 10 + }, +/obj/effect/decal/cleanable/blood/footprints, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"jW" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"jY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"jZ" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/bed/double/maint{ + dir = 1 + }, +/obj/structure/railing/wood{ + dir = 8 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"ka" = ( +/obj/effect/turf_decal/corner/opaque/bar, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"kp" = ( +/obj/structure/door_assembly/door_assembly_ext{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"kt" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 4 + }, +/obj/item/cane, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"kz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"kF" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/obj/machinery/light/broken/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"kH" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"kQ" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/borderfloorwhite/corner{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/unpowered/crashed_holemaker) +"kS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"lm" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = 12; + pixel_y = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered/crashed_holemaker) +"lt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"lu" = ( +/obj/effect/turf_decal/snow, +/obj/item/stack/tile/plasteel, +/obj/effect/turf_decal/weather/snow{ + dir = 6 + }, +/turf/open/floor/plating/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"lN" = ( +/obj/effect/turf_decal/trimline/transparent/ntblue/arrow_ccw, +/obj/effect/turf_decal/weather/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/unpowered/crashed_holemaker) +"lO" = ( +/obj/effect/turf_decal/ntspaceworks_small/right, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"lS" = ( +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"lT" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/frame/computer/retro{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"lU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/command/glass{ + dir = 4; + name = "Captain's Quarters" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"mb" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"md" = ( +/obj/structure/window/spawner/west, +/obj/structure/window/spawner, +/turf/open/floor/plating/dirt/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"mn" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 9 + }, +/obj/item/radio/intercom/directional/north, +/obj/structure/closet/cabinet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"ms" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"mu" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 6 + }, +/turf/open/floor/plating/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"mx" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"mz" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/snow, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"mA" = ( +/obj/machinery/vending/boozeomat/all_access, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"mO" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/wrench, +/obj/effect/turf_decal/corner/opaque/green/border, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/weather/snow{ + dir = 1 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"mU" = ( +/obj/effect/turf_decal/spline/fancy/transparent/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"mV" = ( +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"nb" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/bar, +/obj/item/chair, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"nd" = ( +/obj/item/stack/tile/plasteel, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"ng" = ( +/obj/item/flashlight/flare, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"nA" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/ruin/unpowered/crashed_holemaker) +"nC" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow/surround, +/turf/open/floor/plasteel/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"nL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/human/cook/husked, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"nO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 1 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"nW" = ( +/turf/template_noop, +/area/template_noop) +"oa" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/door/airlock{ + name = "Service Hall"; + dir = 4 + }, +/obj/effect/turf_decal/snow, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"oj" = ( +/obj/effect/decal/cleanable/glass, +/obj/structure/grille/broken, +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/turf/open/floor/plating/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"or" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/salvageable/computer, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"oC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/kitchen/knife, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/ruin/unpowered/crashed_holemaker) +"oD" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/ruin/unpowered/crashed_holemaker) +"oI" = ( +/obj/item/shovel/spade, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"oS" = ( +/obj/effect/turf_decal/snow, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"pl" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/dirt/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"pn" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"pw" = ( +/obj/structure/bookcase/random/fiction, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/ruin/unpowered/crashed_holemaker) +"px" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/tile/wood, +/obj/effect/turf_decal/weather/snow/surround{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"pz" = ( +/obj/effect/turf_decal/trimline/transparent/ntblue/arrow_ccw{ + dir = 10 + }, +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow, +/obj/item/extinguisher/mini/empty, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/unpowered/crashed_holemaker) +"pF" = ( +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"pL" = ( +/obj/effect/turf_decal/snow, +/obj/item/stack/cable_coil/cut/yellow, +/obj/effect/turf_decal/weather/snow{ + dir = 10 + }, +/turf/open/floor/plating/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"pV" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"qa" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/structure/window/reinforced/spawner, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/dirt/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"qo" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"qq" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"qr" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"qF" = ( +/turf/closed/wall/mineral/titanium/survival, +/area/overmap_encounter/planetoid/cave/explored) +"qM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"qS" = ( +/obj/machinery/door/firedoor/border_only/closed{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/unpowered/crashed_holemaker) +"qY" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"rk" = ( +/obj/item/stack/tile/wood, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"rl" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/spline/fancy/transparent/neutral/corner{ + dir = 1 + }, +/obj/item/dualsaber/toy, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"rm" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/orange/half{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"ry" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/snow, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered/crashed_holemaker) +"rz" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/fluff/broken_flooring, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"rL" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"rP" = ( +/obj/effect/turf_decal/box, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"rR" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/machinery/firealarm/directional/east, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"rW" = ( +/obj/effect/turf_decal/snow, +/obj/machinery/light/broken/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/weather/snow/surround{ + dir = 4 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"sd" = ( +/obj/structure/rack, +/obj/machinery/light/broken/directional/north, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"se" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"sf" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/bar{ + dir = 1 + }, +/obj/machinery/light/broken/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"sj" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered/crashed_holemaker) +"sy" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"td" = ( +/obj/structure/table/wood/reinforced, +/obj/item/flashlight/lamp/green{ + pixel_y = 15; + pixel_x = -7 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblue, +/area/ruin/unpowered/crashed_holemaker) +"tm" = ( +/turf/open/floor/plating/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"tt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"ty" = ( +/obj/structure/loom, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"tH" = ( +/obj/effect/turf_decal/borderfloorblack/full, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 4 + }, +/obj/machinery/door/airlock/command/glass{ + dir = 4; + name = "Lieutenant's Quarters" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"tN" = ( +/obj/structure/table/wood/reinforced, +/obj/machinery/light/built/directional/south, +/obj/item/light/tube/broken, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblue, +/area/ruin/unpowered/crashed_holemaker) +"tO" = ( +/obj/effect/turf_decal/ntspaceworks_small, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"tW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/ruin/unpowered/crashed_holemaker) +"uh" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"um" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/ntblue/border{ + dir = 6 + }, +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/effect/turf_decal/snow, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"un" = ( +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered/crashed_holemaker) +"uI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/snow, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered/crashed_holemaker) +"uK" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/transparent/ntblue/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/unpowered/crashed_holemaker) +"uL" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/snow, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"uN" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/coin/antagtoken, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"uO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/structure/table, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/ruin/unpowered/crashed_holemaker) +"uR" = ( +/obj/effect/turf_decal/corner/opaque/black/diagonal{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/head/collectable/flatcap{ + pixel_y = 8; + pixel_x = 5 + }, +/obj/item/stack/ore/salvage/scrapgold/five, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/crashed_holemaker) +"uU" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/snow, +/obj/structure/door_assembly/door_assembly_grunge, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"vc" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"vd" = ( +/turf/closed/wall/rust, +/area/ruin/unpowered/crashed_holemaker) +"vg" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"vr" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/airalarm/directional/north, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"vK" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/frame/computer, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"vT" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered/crashed_holemaker) +"vU" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"wr" = ( +/obj/effect/turf_decal/chapel, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/rods/twentyfive, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"wx" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"wC" = ( +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"wH" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/beige/half{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/neutral, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"xd" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table_frame/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"xs" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/glass_large{ + name = "Theatre" + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"xA" = ( +/obj/effect/turf_decal/chapel{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"xJ" = ( +/obj/item/stack/cable_coil/cut/orange, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"xK" = ( +/obj/effect/turf_decal/corner/opaque/bar, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/structure/chair/stool/bar{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"xQ" = ( +/obj/structure/closet, +/obj/effect/turf_decal/borderfloorwhite/corner, +/obj/effect/turf_decal/corner/transparent/red{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/unpowered/crashed_holemaker) +"ya" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"yp" = ( +/obj/machinery/door/firedoor/border_only/closed{ + dir = 8 + }, +/obj/item/stack/ore/salvage/scrapsilver, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/unpowered/crashed_holemaker) +"yr" = ( +/obj/machinery/airalarm/directional/south, +/obj/structure/bed, +/obj/item/bedsheet/head_of_personnel, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered/crashed_holemaker) +"yE" = ( +/obj/item/wallframe/airalarm, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"yG" = ( +/obj/structure/table/wood/fancy, +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"yH" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/obj/item/stack/sheet/cotton/cloth/five, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"yN" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/ore/salvage/scrapsilver, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"yR" = ( +/obj/item/stack/sheet/mineral/snow, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"yU" = ( +/obj/structure/girder, +/obj/effect/turf_decal/snow, +/turf/open/floor/plating/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"yV" = ( +/obj/structure/rack, +/obj/item/reagent_containers/food/snacks/sosjerky, +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"ze" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"zh" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass, +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 4 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"zs" = ( +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"zy" = ( +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/weather/snow{ + dir = 5 + }, +/turf/open/floor/plating/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"zE" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/orange/half{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/soda_cans/pwr_game{ + pixel_y = 12; + pixel_x = -7 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"Ab" = ( +/obj/effect/turf_decal/trimline/transparent/ntblue/arrow_ccw, +/obj/effect/turf_decal/weather/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/unpowered/crashed_holemaker) +"Af" = ( +/obj/effect/turf_decal/corner/opaque/green/bordercorner, +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/item/pen, +/obj/effect/turf_decal/weather/snow{ + dir = 4 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"An" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/door/airlock{ + name = "Service Hall"; + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Au" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered/crashed_holemaker) +"AF" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = -12; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/sheet/plasteel, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered/crashed_holemaker) +"AH" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/trash/plate, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered/crashed_holemaker) +"AQ" = ( +/obj/effect/turf_decal/borderfloorblack/full, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Bar" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Bf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/snow, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Bj" = ( +/obj/effect/turf_decal/borderfloor/corner, +/obj/effect/turf_decal/corner/transparent/ntblue/border{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Bm" = ( +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Bt" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/corner/opaque/bar{ + dir = 1 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"By" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/bar, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/cigbutt/cigarbutt, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"BT" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"BY" = ( +/obj/effect/turf_decal/corner/opaque/bar/diagonal, +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"BZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Cb" = ( +/obj/machinery/firealarm/directional/north, +/obj/item/pet_carrier, +/turf/open/floor/plating/dirt/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Ch" = ( +/obj/structure/salvageable/seed, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Cj" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Cp" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Cz" = ( +/turf/closed/mineral/random/snow, +/area/overmap_encounter/planetoid/cave/explored) +"CH" = ( +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"CQ" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"CU" = ( +/obj/effect/turf_decal/corner/opaque/bar, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"CZ" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Dx" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/mineral_door/wood, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"DB" = ( +/obj/structure/table/wood/fancy, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"DG" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"DR" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Ec" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 9 + }, +/obj/structure/table_frame/wood, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"En" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/bar{ + dir = 1 + }, +/obj/effect/turf_decal/snow, +/obj/machinery/firealarm/directional/east, +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Ep" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/bed/dogbed, +/turf/open/floor/plating/dirt/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Ey" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/brown/half{ + dir = 4 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"EE" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/corner/opaque/bar{ + dir = 1 + }, +/obj/effect/turf_decal/snow, +/obj/item/radio/intercom/directional/south, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"ET" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/brown/half{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/stool{ + dir = 8 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"EX" = ( +/obj/machinery/light/broken/directional/east, +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma/five, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/unpowered/crashed_holemaker) +"Fg" = ( +/turf/closed/mineral/random/snow, +/area/ruin/unpowered/crashed_holemaker) +"Fr" = ( +/obj/effect/turf_decal/weather/snow{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered/crashed_holemaker) +"FA" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/beige/half{ + dir = 8 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"FG" = ( +/obj/effect/turf_decal/chapel{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Gp" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange/half{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/neutral, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"Gr" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow/surround, +/turf/open/floor/plating/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Gx" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/warning{ + dir = 1 + }, +/obj/structure/chair/office/dark, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"GD" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"GG" = ( +/obj/item/electronics/firelock, +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/structure/table_frame, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"GK" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/borderfloorwhite/corner{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 8 + }, +/obj/machinery/light/broken/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/unpowered/crashed_holemaker) +"GO" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/drip, +/obj/item/circuitboard/machine/reagentgrinder, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Hr" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/structure/table/reinforced{ + color = "#283674" + }, +/obj/item/storage/toolbox/emergency, +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"HB" = ( +/obj/effect/turf_decal/corner/opaque/bar/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/broken_bottle, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"HV" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/broken/directional/south, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"HY" = ( +/obj/structure/salvageable/computer{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"IS" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/ntblue/border{ + dir = 10 + }, +/obj/structure/chair/office/dark, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"IZ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/box, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"Ja" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange/half{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"Jk" = ( +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered/crashed_holemaker) +"Jo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/toy/plush/blahaj, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Jp" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/tile/wood, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"JK" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"JL" = ( +/obj/effect/turf_decal/spline/fancy/transparent/neutral/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"JP" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblue, +/area/ruin/unpowered/crashed_holemaker) +"JR" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Kd" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Ke" = ( +/turf/closed/wall, +/area/ruin/unpowered/crashed_holemaker) +"Kh" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"Ki" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Ks" = ( +/obj/effect/turf_decal/chapel{ + dir = 4 + }, +/obj/structure/bonfire, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"KF" = ( +/obj/effect/turf_decal/corner/opaque/green/border, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"KV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/weather/snow{ + dir = 1 + }, +/obj/structure/cable/orange{ + icon_state = "5-8" + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"KW" = ( +/obj/effect/mob_spawn/human/bartender/husked, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"La" = ( +/obj/item/stack/cable_coil/cut/yellow, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 1 + }, +/obj/effect/turf_decal/snow, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"LK" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"LP" = ( +/obj/machinery/door/firedoor/window, +/obj/effect/turf_decal/snow, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"LQ" = ( +/obj/structure/table/glass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/snow, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Ml" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/bar{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Mu" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 8 + }, +/obj/structure/frame/computer{ + dir = 4 + }, +/turf/open/floor/pod, +/area/overmap_encounter/planetoid/cave/explored) +"MA" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"MH" = ( +/obj/effect/turf_decal/snow, +/obj/item/stack/tile/plasteel, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow, +/obj/effect/turf_decal/weather/snow{ + dir = 6 + }, +/turf/open/floor/plating/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"MR" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue, +/obj/effect/turf_decal/snow, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"MX" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"MZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/stool/bar{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Ni" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Nn" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/snow, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Nz" = ( +/obj/structure/table, +/obj/effect/turf_decal/borderfloorblack{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"NA" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"ND" = ( +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/weather/snow{ + dir = 1 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"NP" = ( +/obj/structure/girder, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"NW" = ( +/obj/machinery/door/firedoor/closed, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/weather/snow{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/unpowered/crashed_holemaker) +"Oe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/displaycase_chassis, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"OA" = ( +/obj/item/stack/tile/plasteel, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/item/crowbar/red, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"OC" = ( +/obj/effect/turf_decal/corner/opaque/bar/diagonal, +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"OK" = ( +/obj/effect/turf_decal/corner/opaque/black/diagonal{ + dir = 4 + }, +/obj/item/cane, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/crashed_holemaker) +"OO" = ( +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Pa" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange/half{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/neutral{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/trash/tray, +/obj/item/trash/raisins{ + pixel_x = 4 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"Pf" = ( +/obj/structure/dresser, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/ruin/unpowered/crashed_holemaker) +"Ph" = ( +/turf/closed/wall/r_wall/rust, +/area/ruin/unpowered/crashed_holemaker) +"Pl" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/table/reinforced{ + color = "#283674" + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 4 + }, +/obj/item/folder/blue, +/obj/machinery/light/broken/directional/east, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Pn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/tile/wood, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"Ps" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Pw" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"PC" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 5 + }, +/turf/open/floor/plasteel/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"PH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/ruin/unpowered/crashed_holemaker) +"PL" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/structure/window/reinforced/spawner/north, +/obj/effect/decal/cleanable/glass, +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/dirt/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"PM" = ( +/obj/effect/turf_decal/corner/opaque/black/diagonal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/crashed_holemaker) +"Qc" = ( +/obj/structure/bookcase/random/religion, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/ruin/unpowered/crashed_holemaker) +"Qd" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/frame/computer{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Qw" = ( +/obj/effect/turf_decal/snow, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"QC" = ( +/obj/item/tank/internals/emergency_oxygen/double/empty, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"QE" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/beige/half{ + dir = 8 + }, +/obj/structure/door_assembly/door_assembly_com, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"QS" = ( +/obj/machinery/light/broken/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 10 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"QX" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 10 + }, +/turf/open/floor/plating/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Rd" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/turf_decal/trimline/transparent/ntblue/arrow_ccw, +/obj/effect/turf_decal/weather/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/unpowered/crashed_holemaker) +"Rh" = ( +/obj/machinery/door/firedoor/closed, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/unpowered/crashed_holemaker) +"Rn" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Ru" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/airalarm/directional/north, +/obj/item/stack/tile/plasteel, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Rx" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/obj/effect/turf_decal/snow, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"RA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/tile/wood, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"RB" = ( +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"RL" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/spline/fancy/transparent/neutral/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"RT" = ( +/obj/effect/turf_decal/weather/snow{ + dir = 5 + }, +/obj/item/wallframe/firealarm, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered/crashed_holemaker) +"Sd" = ( +/obj/effect/turf_decal/chapel, +/obj/machinery/light/broken/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Sj" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/bar{ + dir = 1 + }, +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Sz" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"SA" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 5 + }, +/obj/structure/chair/stool/bar{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"SF" = ( +/obj/structure/flora/stump, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"SM" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 10 + }, +/obj/machinery/newscaster/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"SO" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/window/reinforced/spawner, +/obj/machinery/shower{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered/crashed_holemaker) +"Td" = ( +/obj/item/stack/tile/plasteel, +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow/surround{ + dir = 8 + }, +/turf/open/floor/plating/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Tm" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/beige/half{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"Tn" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Ts" = ( +/obj/machinery/door/firedoor/border_only/closed{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/ore/salvage/scrapsilver, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/unpowered/crashed_holemaker) +"Tt" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/dirt/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Tu" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/door/airlock{ + name = "Service Hall" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Tv" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/obj/structure/closet/crate/wooden, +/obj/item/toy/dummy, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Tz" = ( +/obj/machinery/vending/assist, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"TB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/reagent_containers/food/snacks/meat/slab/corgi, +/obj/item/reagent_containers/food/snacks/meat/slab/corgi, +/obj/item/stack/sheet/animalhide/corgi, +/obj/structure/closet/secure_closet/freezer, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"TH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"TT" = ( +/obj/structure/grille/broken, +/obj/effect/turf_decal/snow, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"TY" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/human/botanist/husked, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"Uj" = ( +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Ur" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/brown/half{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/mask/breath, +/turf/open/floor/plastic, +/area/ruin/unpowered/crashed_holemaker) +"Uy" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"UA" = ( +/obj/effect/turf_decal/snow, +/obj/effect/turf_decal/weather/snow{ + dir = 5 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/pod, +/area/overmap_encounter/planetoid/cave/explored) +"UC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"UE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 10 + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"UP" = ( +/obj/machinery/rnd/production/protolathe/department/service, +/obj/effect/turf_decal/borderfloorblack{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"UQ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/structure/door_assembly/door_assembly_com{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"UT" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Va" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Library" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Vf" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/obj/effect/turf_decal/trimline/transparent/ntblue/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/unpowered/crashed_holemaker) +"Vg" = ( +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Vo" = ( +/obj/effect/turf_decal/spline/fancy/transparent/neutral{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Vs" = ( +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"Vt" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/red/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"VD" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"VF" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"VP" = ( +/obj/effect/turf_decal/spline/fancy/transparent/neutral/corner, +/obj/item/radio/intercom/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"VQ" = ( +/obj/effect/turf_decal/corner/opaque/bar/diagonal, +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 8 + }, +/obj/effect/turf_decal/snow, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"VW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Wb" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Ws" = ( +/obj/effect/turf_decal/snow, +/obj/machinery/light/broken/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 5 + }, +/turf/open/floor/plating/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"WD" = ( +/obj/machinery/light/small/broken/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered/crashed_holemaker) +"WU" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"WV" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"Xb" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"Xp" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/ntblue/border{ + dir = 5 + }, +/obj/item/stack/sheet/plasteel, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"Xq" = ( +/obj/effect/turf_decal/chapel{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/stool{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"XC" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"XE" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"XG" = ( +/obj/machinery/door/airlock/command/glass{ + dir = 4; + name = "Lieutenant's Quarters" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"XK" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"XQ" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"XY" = ( +/obj/effect/turf_decal/trimline/transparent/ntblue/arrow_ccw{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing/wood, +/obj/structure/table, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/unpowered/crashed_holemaker) +"XZ" = ( +/obj/structure/bookcase/random/adult, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Yb" = ( +/obj/structure/bookcase/random/reference, +/obj/effect/turf_decal/weather/dirt/corner, +/obj/machinery/light/broken/directional/east, +/turf/open/floor/wood, +/area/ruin/unpowered/crashed_holemaker) +"Yk" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/tech, +/area/ruin/unpowered/crashed_holemaker) +"YG" = ( +/obj/structure/firelock_frame/window, +/obj/effect/turf_decal/snow, +/obj/structure/barricade/wooden/crude/snow, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"YL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/cell_charger, +/turf/open/floor/carpet, +/area/ruin/unpowered/crashed_holemaker) +"YM" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/spline/fancy/transparent/ntblue{ + dir = 1 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"YV" = ( +/obj/item/wallframe/airalarm, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/overmap_encounter/planetoid/cave/explored) +"Zh" = ( +/obj/effect/turf_decal/corner/transparent/ntblue/full, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/structure/tank_dispenser, +/obj/machinery/light/broken/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/icemoon, +/area/ruin/unpowered/crashed_holemaker) +"Zj" = ( +/turf/closed/wall/r_wall, +/area/ruin/unpowered/crashed_holemaker) +"Zr" = ( +/obj/effect/spawner/structure/window/reinforced/shutters, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"Zy" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow, +/obj/structure/cable/orange{ + icon_state = "6-8" + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) +"ZB" = ( +/obj/machinery/light/broken/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow{ + dir = 10 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered/crashed_holemaker) +"ZJ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/snow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/unpowered/crashed_holemaker) +"ZK" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/crashed_holemaker) + +(1,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +"} +(2,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +"} +(3,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +nW +nW +nW +"} +(4,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Ph +Fg +Zj +Ph +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +nW +nW +"} +(5,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Ph +Zj +Zr +Zj +nb +SM +Ke +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +nW +"} +(6,1,1) = {" +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Ph +Ph +Zj +vd +By +CU +hX +EE +vd +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +nW +"} +(7,1,1) = {" +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Ph +Zj +ib +Ke +mA +ka +BY +iX +Bt +vd +Ke +eL +eL +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +"} +(8,1,1) = {" +nW +nW +nW +nW +nW +Cz +Cz +Cz +Zj +Zj +mn +Uy +jJ +MX +xK +HB +OC +VQ +sy +wx +eL +eL +eL +eL +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +"} +(9,1,1) = {" +nW +nW +nW +nW +nW +Cz +Cz +Cz +Zr +Ec +GO +eJ +gU +MX +SA +Ml +Sj +sf +En +OO +wx +eL +eL +eL +eL +eL +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +"} +(10,1,1) = {" +nW +nW +nW +nW +nW +Cz +Cz +Cz +Zj +GD +rR +uh +uN +Ke +XE +AQ +XE +vd +Ke +eL +wx +wx +Ps +eL +eL +eL +eL +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +"} +(11,1,1) = {" +nW +nW +nW +nW +Cz +Cz +Cz +Zj +Zj +Xb +Ph +Zj +ZK +Ke +kt +VW +vg +Ws +lu +wx +eL +wx +qr +qr +eL +eL +eL +eL +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +"} +(12,1,1) = {" +nW +nW +nW +nW +Cz +Cz +Cz +Ph +AF +aj +Ni +Zj +bZ +CQ +vg +ND +bi +vg +eL +wx +eL +eL +eL +eL +fx +eL +eL +eL +eL +Cz +Cz +Cz +nW +nW +nW +nW +nW +"} +(13,1,1) = {" +nW +nW +nW +nW +Cz +Cz +Cz +Zr +jP +nL +yr +Ph +ze +vd +wC +NW +Ke +lS +Ch +ga +iS +XQ +eL +eL +eL +eL +eL +eL +eL +eL +Cz +eL +nW +nW +nW +nW +nW +"} +(14,1,1) = {" +nW +nW +nW +Cz +Cz +Cz +Ph +Ph +Ke +XG +Ke +Zj +vd +vd +vc +KV +vd +Ps +wx +JK +wx +eL +eL +eL +wx +wx +wx +eL +eL +eL +eL +eL +eL +eL +nW +nW +nW +"} +(15,1,1) = {" +nW +nW +nW +Cz +Cz +Cz +Ph +gF +jp +VD +uO +Zj +Vf +XY +cG +Af +vd +Gr +eL +Td +hO +qr +WU +eL +eL +eL +eL +eL +eL +eL +eL +eL +eL +eL +eL +nW +nW +"} +(16,1,1) = {" +nW +nW +nW +Cz +Cz +Cz +Zj +vr +AH +Pn +TB +kz +lN +PL +Zy +xJ +Tt +qr +eL +PC +nC +qr +qr +eL +ng +eL +eL +wx +gc +wx +wx +wx +eL +eL +eL +eL +nW +"} +(17,1,1) = {" +nW +nW +Cz +Cz +Cz +Cz +Ph +Ke +kF +mx +nA +kz +Ab +Tt +tt +eT +pl +QX +wx +qr +wx +eL +fx +eL +qr +SF +eL +eL +eL +eL +eL +eL +eL +eL +eL +nW +nW +"} +(18,1,1) = {" +nW +Cz +Cz +Cz +Cz +Cz +Zj +Ep +iN +yN +Gx +ac +Rd +qa +zh +KF +bd +mu +Ps +eL +eD +eL +qr +KW +eL +eL +eL +eL +eL +eL +eL +eL +eL +nW +nW +nW +nW +"} +(19,1,1) = {" +nW +Cz +Cz +Cz +Cz +Cz +Ph +Cb +vT +CZ +HY +Zj +uK +pz +vg +mO +ek +YV +qr +qr +hs +eL +oI +Ps +QC +eL +eL +eL +eL +wx +wx +eL +eL +nW +nW +nW +nW +"} +(20,1,1) = {" +nW +Cz +Cz +Cz +Cz +Ph +Ph +Ke +Ke +tH +Ke +Ph +EX +Ke +yp +fr +Ke +vd +vd +Ke +vd +yR +qr +eL +qr +eL +eL +wx +wx +eL +eL +eL +eL +eL +eL +nW +nW +"} +(21,1,1) = {" +Cz +Cz +Cz +Cz +Cz +Zr +Hr +cL +lT +iY +UQ +Zj +vd +vd +VP +Vo +RL +XE +GK +kQ +vd +vd +oa +vd +vd +eL +qF +XK +eL +eL +eL +eL +eL +eL +eL +eL +nW +"} +(22,1,1) = {" +Cz +Cz +Cz +Cz +Cz +Zr +or +Bj +zs +IS +MR +YM +MA +Dx +wH +aL +Tm +jT +FA +QE +Ke +vU +rL +Nz +kz +eL +qF +Mu +qF +SF +eL +eL +eL +eL +eL +eL +nW +"} +(23,1,1) = {" +Cz +Cz +Cz +Cz +wx +Zr +vK +Kd +RB +mb +DR +kz +eE +kz +Gp +tO +Pa +zE +Ja +rm +Tu +kH +cw +aE +vd +eL +NP +UA +qF +eL +eL +eL +eL +eL +eL +nW +nW +"} +(24,1,1) = {" +Cz +Cz +Cz +Cz +wx +YG +La +Xp +hl +um +DR +uL +JR +Cp +fn +lO +ET +Ey +Ur +iw +Ke +WV +cl +UP +kz +eL +qF +kp +qF +wx +eL +eL +eL +eL +nW +nW +nW +"} +(25,1,1) = {" +Cz +Cz +Cz +eL +wx +LP +GG +Pl +Qd +qo +cI +Zj +Zh +Ke +JL +mU +rl +XE +xQ +xQ +vd +Ke +An +Ke +vd +eL +eL +eL +eL +eL +Cj +eL +eL +nW +nW +nW +nW +"} +(26,1,1) = {" +Cz +Cz +Cz +Cz +wx +Ph +Zj +Ke +Ke +lU +Ke +Ph +Ke +vd +Ts +qS +vd +Ke +vd +Ke +Ke +Tv +yH +BT +kz +eL +eL +SF +eL +eL +eL +eL +eL +eL +nW +nW +nW +"} +(27,1,1) = {" +Cz +Cz +Cz +Cz +WU +wx +qq +vg +RT +uI +XC +Zj +mV +Yk +VW +Tn +vd +iM +FG +ge +vd +vd +Vt +ty +kz +eL +eL +eL +wx +wx +eL +eL +eL +nW +nW +nW +nW +"} +(28,1,1) = {" +Cz +Cz +Cz +Cz +eL +wx +vg +yE +fO +Fr +LQ +Ph +IZ +se +co +rz +Ke +xA +wr +tW +CH +vd +Ru +jZ +vd +eL +eL +eL +eL +eL +wx +wx +eL +eL +eL +eL +nW +"} +(29,1,1) = {" +Cz +Cz +Cz +Cz +Cz +wx +Zj +cA +Jk +td +tN +Ph +sd +se +TY +UC +bj +Kh +yV +kS +hP +xs +fD +HV +Ke +oj +Ke +eL +eL +Ps +eL +eL +eL +eL +eL +eL +nW +"} +(30,1,1) = {" +nW +Cz +Cz +Cz +Cz +Cz +Ph +Bf +Au +ey +JP +Ph +rP +Yk +eG +BZ +Vs +YL +Kh +MZ +oC +ci +eg +ho +vd +aS +Ke +eL +eL +eL +eL +eL +eL +eL +nW +nW +nW +"} +(31,1,1) = {" +nW +Cz +Cz +Cz +Cz +Cz +Ph +gF +Nn +oD +qY +Ph +Tz +se +qM +UC +vd +eP +Xq +tW +rk +vd +OK +PM +NA +tm +vd +wx +wx +eL +eL +eL +eL +nW +nW +nW +nW +"} +(32,1,1) = {" +nW +nW +Cz +Cz +Cz +Cz +Zj +Zj +Ke +cV +Ke +Zj +Ke +vd +VW +BZ +Ke +Ks +Sd +dt +cS +vd +do +uR +Ke +tm +vd +wx +wx +wx +eL +eL +wx +wx +nW +nW +nW +"} +(33,1,1) = {" +nW +nW +Cz +Cz +Cz +Cz +Cz +Zr +SO +VD +Pf +Ph +lt +Ke +bU +Rh +Ke +vd +vd +Ke +vd +vd +Ke +Ke +Ke +ZK +Ke +Ke +vd +aP +wx +eL +eL +eL +eL +Ps +nW +"} +(34,1,1) = {" +nW +nW +nW +Cz +Cz +Cz +Cz +Zj +lm +WD +jz +Zj +bZ +pV +Pw +OA +jU +ya +it +vg +nO +vg +Uj +rW +Qw +vg +vg +zy +MH +eL +eL +eL +Ps +eL +eL +nW +nW +"} +(35,1,1) = {" +nW +nW +nW +Cz +Cz +Cz +Cz +Zj +Ph +Ph +Ph +Zj +DG +Ke +vg +bC +aC +QS +UT +ms +nd +gG +UE +vg +wC +vg +vg +vg +wx +pL +eL +eL +eL +eL +nW +nW +nW +"} +(36,1,1) = {" +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Ph +XZ +pw +jW +Vg +Ke +XE +Va +LK +Ke +vd +Ke +TT +kz +Ke +kz +Ke +aA +Ke +aP +Cz +Cz +wx +wx +eL +Cz +Cz +nW +nW +"} +(37,1,1) = {" +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Fg +Rx +RA +VD +bZ +VF +vg +ca +vg +px +br +Ke +jr +xd +oS +PH +Rn +un +Ke +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +"} +(38,1,1) = {" +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Ph +Ph +Yb +Qc +Jp +at +Sz +Sz +fV +vg +br +Ke +aq +ZJ +Ki +pF +oS +Ke +vd +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +"} +(39,1,1) = {" +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Ph +Zj +md +Oe +Vg +sj +gp +rk +ZB +Ke +vd +mb +uU +qr +Wb +qr +yU +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +"} +(40,1,1) = {" +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Ph +Ph +Zj +Jo +TH +Ke +jY +jj +Ke +mz +Bm +Ke +eL +Ps +wx +wx +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +"} +(41,1,1) = {" +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Zj +Zr +Zr +Ph +DB +yG +Ke +ry +wx +qr +ch +qr +wx +ch +wx +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +"} +(42,1,1) = {" +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Zj +Zj +Ph +Ph +Zj +pn +qr +wx +WU +wx +wx +wx +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +"} +(43,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +wx +eL +wx +wx +wx +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +"} +(44,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +wx +wx +wx +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +"} +(45,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +"} +(46,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +nW +"} +(47,1,1) = {" +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +nW +Cz +Cz +Cz +Cz +Cz +Cz +Cz +Cz +nW +nW +nW +nW +nW +nW +nW +nW +"} 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/IceRuins/icemoon_underground_oldstation.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm index 1d6aaa0388d5..e9f508fe0126 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm @@ -310,9 +310,6 @@ /obj/effect/decal/cleanable/dirt, /turf/closed/wall/rust, /area/ruin/space/has_grav/ancientstation) -"bd" = ( -/turf/template_noop, -/area/space) "be" = ( /obj/structure/window/reinforced/spawner/north, /obj/structure/window/reinforced/spawner/west, @@ -2601,26 +2598,6 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/kitchen) -"hX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/structure/sign/poster/retro/lasergun{ - pixel_x = 32 - }, -/obj/item/gun/energy/laser/retro/old{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/gun/energy/laser/retro/old{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/structure/rack, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/sec) "hY" = ( /obj/structure/chair, /obj/effect/decal/cleanable/dirt, @@ -4087,6 +4064,34 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/rnd) +"lO" = ( +/obj/structure/table, +/obj/item/storage/firstaid/ancient, +/obj/effect/decal/cleanable/dirt, +/obj/item/defibrillator, +/obj/item/paper/fluff/ruins/oldstation/protosleep{ + default_raw_text = "*Prototype Sleeper*

We have deliverted the lastest in medical technology to the medical bay for your use." + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Beta Station Medbay APC"; + pixel_y = 23; + start_charge = 0 + }, +/obj/effect/turf_decal/corner/opaque/blue, +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/airless{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/ruin/space/has_grav/ancientstation/medbay) "lQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -4236,34 +4241,6 @@ /obj/item/pipe_dispenser, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/mining) -"mu" = ( -/obj/structure/table, -/obj/item/storage/firstaid/ancient, -/obj/effect/decal/cleanable/dirt, -/obj/item/defibrillator, -/obj/item/paper/fluff/ruins/oldstation/protosleep{ - default_raw_text = "*Prototype Sleeper*

We have deliverted the lastest in medical technology to the medical bay for your use." - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Beta Station Medbay APC"; - pixel_y = 23; - start_charge = 0 - }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/airless{ - initial_gas_mix = "ICEMOON_ATMOS" - }, -/area/ruin/space/has_grav/ancientstation/medbay) "mv" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end{ dir = 8 @@ -5816,6 +5793,15 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/ruin/space/has_grav/ancientstation/medbay) +"vr" = ( +/obj/machinery/light/directional/east, +/obj/structure/table/reinforced, +/obj/item/paper/fluff/ruins/oldstation/protosing{ + default_raw_text = "fucking uhhh tesla -I'll finish this later, Professor Fiddler"; + name = "Tesla Generator" + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) "vs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -7738,6 +7724,26 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) +"Nz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/red, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 4 + }, +/obj/structure/sign/poster/retro/lasergun{ + pixel_x = 32 + }, +/obj/item/gun/energy/laser/retro{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/gun/energy/laser/retro{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/structure/rack, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/sec) "NC" = ( /obj/machinery/power/smes/engineering{ charge = 0 @@ -8450,15 +8456,6 @@ /obj/effect/spawner/lootdrop/maintenance/seven, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/hydroponics) -"UT" = ( -/obj/machinery/light/directional/east, -/obj/structure/table/reinforced, -/obj/item/paper/fluff/ruins/oldstation/protosing{ - default_raw_text = "fucking uhhh tesla -I'll finish this later, Professor Fiddler"; - name = "Tesla Generator" - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) "UV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -9033,7 +9030,7 @@ ch Sd je AK -mu +lO dD kb eH @@ -11443,7 +11440,7 @@ fO fO MI wd -hX +Nz im eJ lg @@ -11479,7 +11476,7 @@ xT aa aa aa -bd +aa lg lH lg @@ -11528,7 +11525,7 @@ xT aa aa aa -bd +aa lg lg lg @@ -12530,7 +12527,7 @@ Yr ca jA mm -UT +vr jA GF lc diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm index c0fc2fcfc956..8758474983c4 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm @@ -5624,8 +5624,8 @@ /area/overmap_encounter/planetoid/jungle/explored) "LM" = ( /obj/structure/closet, -/obj/item/clothing/suit/aclf, -/obj/item/clothing/under/syndicate/aclf, +/obj/item/clothing/suit/gorlex, +/obj/item/clothing/under/syndicate/officer, /obj/item/gun/ballistic/automatic/pistol, /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/magazine/m10mm, @@ -7308,8 +7308,8 @@ "XC" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/vomit/old, -/obj/item/clothing/under/syndicate/aclf, -/obj/item/clothing/suit/aclf, +/obj/item/clothing/under/syndicate/officer, +/obj/item/clothing/suit/gorlex, /obj/item/clothing/shoes/combat, /turf/open/floor/mineral/plastitanium, /area/ruin/jungle/starport/tower) diff --git a/_maps/RandomRuins/JungleRuins/jungle_demon.dmm b/_maps/RandomRuins/JungleRuins/jungle_demon.dmm index 2185de838688..adbb037af38c 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/tacticool, +/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/tank/internals/oxygen/red, +/obj/item/clothing/suit/space/hardsuit/syndi, +/obj/item/clothing/mask/gas/syndicate, /turf/open/floor/plasteel/dark, /area/ruin/powered) "QI" = ( diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index 1983657dbc1f..f008f3c68717 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -3331,10 +3331,6 @@ pixel_x = 21 }, /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/grass/jungle/b{ - icon_state = "rock3"; - pixel_y = 9 - }, /turf/open/floor/plating/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) "uk" = ( 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/LavaRuins/lavaland_surface_dwarffortress.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm index 999dddfea9f3..52a302920d24 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm @@ -282,11 +282,6 @@ /area/overmap_encounter/planetoid/cave/explored) "UM" = ( /obj/structure/table/wood, -/obj/item/clothing/shoes/cowboy/lizard, -/obj/item/tailclub{ - pixel_x = 3; - pixel_y = 9 - }, /turf/open/floor/plating/asteroid/basalt, /area/overmap_encounter/planetoid/cave/explored) "Vk" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm deleted file mode 100644 index 3f6744665feb..000000000000 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm +++ /dev/null @@ -1,2942 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"aK" = ( -/obj/machinery/autolathe, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"aT" = ( -/obj/effect/decal/cleanable/dirt, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"aY" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/effect/turf_decal/trimline/opaque/blue/line, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"bs" = ( -/obj/machinery/mineral/ore_redemption{ - input_dir = 2; - output_dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"bv" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/structure/ore_box, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"bx" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"bI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/golem_ship) -"bR" = ( -/obj/structure/rack, -/obj/item/shovel, -/obj/item/shovel{ - pixel_x = 5 - }, -/obj/item/shovel{ - pixel_x = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/line, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"cp" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"cD" = ( -/obj/structure/fans/tiny, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/airlock/external, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"dc" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 - }, -/turf/open/floor/plating{ - initial_gas_mix = "LAVALAND_ATMOS" - }, -/area/ruin/powered/golem_ship) -"di" = ( -/obj/structure/closet/crate, -/obj/item/storage/bag/ore, -/obj/item/flashlight/lantern, -/obj/item/pickaxe, -/obj/item/shovel, -/obj/item/mining_scanner, -/obj/item/card/id/mining, -/obj/item/clothing/head/hardhat/mining, -/obj/effect/turf_decal/trimline/opaque/yellow/line, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"dq" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"dr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"dt" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/golem_ship) -"dv" = ( -/obj/item/soap, -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"dy" = ( -/obj/structure/closet/crate, -/obj/item/storage/bag/ore, -/obj/item/flashlight/lantern, -/obj/item/pickaxe, -/obj/item/shovel, -/obj/item/mining_scanner, -/obj/item/card/id/mining, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/head/hardhat/mining, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/trimline/opaque/yellow/line, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"dF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance/three, -/obj/structure/closet/crate, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"ea" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"ee" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"ep" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/white/line, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"eA" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/arrow_cw, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"eG" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"fi" = ( -/obj/machinery/door/airlock/titanium, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"fy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"fK" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/airlock/mining, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"fL" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/line, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"fQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/yellow/corner{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"fS" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door{ - id = "golemloading"; - name = "Cargo Blast Door Control"; - pixel_x = -5; - pixel_y = -25 - }, -/obj/effect/turf_decal/trimline/opaque/yellow/arrow_cw{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"gg" = ( -/obj/machinery/light/small/directional/west, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"gn" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"gs" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"gz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants{ - icon_state = "plant-22" - }, -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"gT" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"hu" = ( -/obj/structure/rack, -/obj/item/pickaxe{ - pixel_x = -10 - }, -/obj/item/pickaxe{ - pixel_x = -5 - }, -/obj/item/pickaxe, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/line, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"hN" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"hS" = ( -/obj/structure/mirror{ - pixel_y = 28 - }, -/obj/structure/sink{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"ia" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/innards, -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/golem_ship) -"in" = ( -/obj/structure/rack, -/obj/item/card/id/mining, -/obj/item/card/id/mining, -/obj/item/card/id/mining, -/obj/item/card/id/mining, -/obj/item/card/id/mining, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"iw" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"iE" = ( -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) -"iQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/golem_ship) -"iZ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/golem_ship) -"jl" = ( -/obj/item/storage/firstaid/fire{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"jC" = ( -/obj/structure/window/reinforced{ - dir = 2; - name = "shrine of the liberator" - }, -/obj/structure/table/wood, -/obj/item/book/manual/wiki/research_and_development{ - name = "Sacred Text of the Liberator"; - pixel_x = -4; - pixel_y = 3 - }, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/opaque/purple/corner, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"jH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/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 = -2; - pixel_y = -2 - }, -/obj/item/clothing/head/hardhat/mining{ - pixel_x = -6; - pixel_y = -6 - }, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"jR" = ( -/obj/structure/window/reinforced{ - dir = 2; - name = "shrine of the liberator" - }, -/obj/structure/statue/gold/rd, -/obj/structure/window/reinforced{ - dir = 4; - name = "shrine of the liberator" - }, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/opaque/purple/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"jX" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"kg" = ( -/obj/machinery/light/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/line, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"ki" = ( -/obj/machinery/door/poddoor{ - id = "golemloading" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"kt" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"kw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/bedsheetbin, -/obj/structure/table, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"kC" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"kP" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"kS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"kX" = ( -/obj/item/kirbyplants{ - icon_state = "applebush" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/line, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"kY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"lt" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/wood, -/area/ruin/powered/golem_ship) -"lN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"lU" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/white/line, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"mt" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/corner, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"mE" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"mL" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"mX" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/white/corner, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"nc" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/machinery/suit_storage_unit, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"nl" = ( -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"np" = ( -/obj/structure/fans/tiny, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"nt" = ( -/obj/structure/shuttle/engine/heater{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating{ - initial_gas_mix = "LAVALAND_ATMOS" - }, -/area/ruin/powered/golem_ship) -"ny" = ( -/obj/structure/fans/tiny, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"nA" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"nD" = ( -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"nE" = ( -/obj/item/clothing/suit/hazardvest{ - desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; - name = "emergency lifejacket" - }, -/obj/item/clothing/suit/hazardvest{ - desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; - name = "emergency lifejacket" - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 3 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 3 - }, -/obj/item/clothing/mask/breath{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/clothing/mask/breath{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/closet/crate/internals, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/head/hardhat/mining, -/obj/item/clothing/head/hardhat/mining, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"nH" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/machinery/suit_storage_unit, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"nL" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"nT" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/airlock/titanium, -/obj/effect/decal/cleanable/blood/tracks, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"om" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/yellow/corner{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/industrial/loading{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"oF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"oO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"pi" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"pT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"qt" = ( -/obj/structure/ore_box, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"rl" = ( -/obj/structure/frame/machine, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"rv" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/white/corner, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"rH" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 6 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"rR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/golem_ship) -"se" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"tw" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"tI" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"uk" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"uw" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"uA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/corner, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"uL" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance/two, -/obj/structure/closet/crate, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"uQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 10 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"uZ" = ( -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/airlock/mining, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"vl" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/item/crowbar, -/obj/item/crowbar{ - pixel_y = 12 - }, -/obj/item/crowbar{ - pixel_y = 6 - }, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"vn" = ( -/obj/structure/table/reinforced, -/obj/item/folder/blue, -/obj/item/pen, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"vv" = ( -/obj/machinery/vending/mining_equipment/golem, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/trimline/opaque/yellow/line, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"vA" = ( -/obj/structure/table/reinforced, -/obj/machinery/light/small/directional/south, -/obj/machinery/button/door{ - id = "golemloading"; - name = "Cargo Blast Door Control"; - pixel_x = -5; - pixel_y = -25 - }, -/obj/item/storage/firstaid/regular, -/obj/machinery/button/door{ - id = "golemwindows"; - name = "Window Blast Door Control"; - pixel_x = 5; - pixel_y = -25 - }, -/obj/effect/turf_decal/trimline/opaque/blue/line, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"vS" = ( -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"vV" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"wg" = ( -/obj/structure/sign/warning/xeno_mining, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/golem_ship) -"wC" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/white/line, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"wJ" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/wood, -/area/ruin/powered/golem_ship) -"wL" = ( -/obj/structure/frame/computer{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"wR" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/structure/table, -/obj/item/storage/box/lights/mixed{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/lights/bulbs, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"wW" = ( -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - dir = 4; - name = "Broken Computer" - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"yg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"yu" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"yN" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"yO" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/door/airlock/command{ - name = "Bridge"; - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"zg" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"zs" = ( -/obj/machinery/light/directional/south, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"zt" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/arrow_cw{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"zM" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"zW" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"zX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"zY" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/golem_ship) -"Ad" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Ae" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/obj/effect/mob_spawn/human/golem/adamantine, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/line, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Af" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/door/airlock/command{ - name = "Bridge"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Ak" = ( -/obj/machinery/door/airlock/titanium, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Ba" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"Bw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/line, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"BD" = ( -/obj/item/kirbyplants{ - icon_state = "plant-21" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"BE" = ( -/obj/structure/fans/tiny, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Cg" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "golemwindows"; - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"CO" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"Dp" = ( -/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/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stack/cable_coil/red{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/turf_decal/box/corners, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"DM" = ( -/obj/structure/fans/tiny, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"DY" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"Er" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/yellow/arrow_cw, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"EF" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/obj/effect/mob_spawn/human/golem/adamantine, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Fi" = ( -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/item/pen, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"FE" = ( -/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/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"FP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/washing_machine, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"FS" = ( -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/item/toy/figure/rd{ - name = "the Liberator action figure"; - toysay = "Yeah, go do whatever." - }, -/obj/effect/turf_decal/trimline/opaque/blue/line, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"FT" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"Gg" = ( -/obj/machinery/reagentgrinder, -/obj/structure/table, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Gn" = ( -/obj/structure/window/reinforced{ - dir = 1; - name = "shrine of the liberator" - }, -/obj/structure/table/wood, -/obj/item/circuitboard/aicore, -/obj/item/toy/figure/rd{ - name = "the Liberator action figure"; - toysay = "Yeah, go do whatever." - }, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/opaque/purple/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Gr" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"GB" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"GD" = ( -/obj/structure/bed, -/obj/item/bedsheet/rd/royal_cape, -/obj/structure/window/reinforced{ - dir = 1; - name = "shrine of the liberator" - }, -/obj/structure/window/reinforced{ - dir = 4; - name = "shrine of the liberator" - }, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/opaque/purple/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Hg" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"Hs" = ( -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/golem_ship) -"HK" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"HW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"HZ" = ( -/turf/template_noop, -/area/template_noop) -"Iv" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"IB" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/wood, -/area/ruin/powered/golem_ship) -"IK" = ( -/obj/structure/sign/departments/science, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/golem_ship) -"IW" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Jk" = ( -/obj/structure/closet/crate/science, -/obj/item/storage/box/stockparts/basic, -/obj/item/storage/box/stockparts/basic, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"JA" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/airlock/external, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"JL" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) -"JX" = ( -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"Kb" = ( -/obj/machinery/door/airlock/titanium, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Kc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Kg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/frame/machine, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"KC" = ( -/obj/structure/rack, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/item/storage/bag/trash{ - pixel_x = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"KG" = ( -/obj/structure/fans/tiny, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"KH" = ( -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/turf/open/floor/wood, -/area/ruin/powered/golem_ship) -"KO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/gibs/up, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/golem_ship) -"La" = ( -/obj/machinery/door/airlock/titanium, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Ld" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"LL" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Ma" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "golemwindows" - }, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"Ml" = ( -/obj/machinery/door/poddoor{ - id = "golemloading" - }, -/obj/structure/fans/tiny, -/obj/effect/decal/cleanable/blood/tracks, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"Mv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ - 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 = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Mw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"Mx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"MN" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/closet/secure_closet/personal, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"MO" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) -"MT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 5 - }, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"Ng" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"Nj" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/rack, -/obj/item/storage/toolbox/emergency{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"Nu" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"NT" = ( -/obj/item/areaeditor/blueprints{ - desc = "Use to build new structures in the wastes."; - name = "land claim" - }, -/obj/item/disk/design_disk/golem_shell, -/obj/structure/table, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"NZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/arrow_cw, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Oj" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/golem_ship) -"Om" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/ore_box, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Ox" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/purple/line, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"OD" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"OF" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"PD" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"PE" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"PV" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"PX" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/golem_ship) -"Ql" = ( -/obj/machinery/door/airlock/titanium, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Qz" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"QD" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/opaque/white/line, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"QY" = ( -/obj/item/storage/firstaid/brute{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/firstaid/brute, -/obj/item/storage/firstaid/brute{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"RB" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/structure/rack, -/obj/item/flashlight/lantern{ - pixel_x = 5 - }, -/obj/item/flashlight/lantern, -/obj/item/flashlight/lantern{ - pixel_x = -5 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"RK" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/obj/item/kinetic_crusher, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Sa" = ( -/obj/item/kirbyplants{ - icon_state = "plant-22" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Sc" = ( -/obj/machinery/computer/arcade/battle, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Sg" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/item/stack/cable_coil/red{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/stock_parts/cell/high/plus, -/obj/item/wirecutters, -/obj/structure/table, -/turf/open/floor/plating, -/area/ruin/powered/golem_ship) -"SG" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"SR" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/line, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Td" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/mining_scanner, -/obj/item/storage/bag/ore, -/obj/item/mining_scanner, -/obj/item/storage/bag/ore, -/obj/item/mining_scanner, -/obj/item/storage/bag/ore, -/obj/item/mining_scanner, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/line, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Tj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 9 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/ruin/powered/golem_ship) -"TN" = ( -/obj/structure/rack, -/obj/item/resonator{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/resonator{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/resonator{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/resonator{ - pixel_x = -6; - pixel_y = -6 - }, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"TO" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"Ud" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/white/line, -/turf/open/floor/plasteel, -/area/ruin/powered/golem_ship) -"Uq" = ( -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/line, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"UD" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"UH" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/obj/effect/mob_spawn/human/golem/adamantine, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/line, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"UW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"VY" = ( -/obj/structure/table/reinforced, -/obj/machinery/light/small/directional/north, -/obj/machinery/recharger, -/obj/item/resonator/upgraded, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 9 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Wr" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) -"WO" = ( -/obj/machinery/computer/arcade/orion_trail, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Xr" = ( -/obj/structure/closet/crate, -/obj/item/storage/bag/ore, -/obj/item/flashlight/lantern, -/obj/item/pickaxe, -/obj/item/shovel, -/obj/item/mining_scanner, -/obj/item/card/id/mining, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/head/hardhat/mining, -/obj/effect/turf_decal/trimline/opaque/yellow/line, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Xv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"XR" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/golem_ship) -"XY" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"Ye" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/golem_ship) -"YN" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"YQ" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/obj/effect/mob_spawn/human/golem/adamantine, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) -"YV" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/golem_ship) -"YZ" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/storage/toolbox/emergency{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"Ze" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered/golem_ship) -"ZX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/golem_ship) -"ZY" = ( -/obj/machinery/computer/helm{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/mineral/plastitanium, -/area/ruin/powered/golem_ship) - -(1,1,1) = {" -HZ -HZ -HZ -HZ -HZ -HZ -Ye -Cg -Cg -Cg -Cg -Ye -HZ -HZ -HZ -HZ -HZ -HZ -"} -(2,1,1) = {" -HZ -HZ -HZ -HZ -HZ -HZ -Ma -IW -wW -ZY -Fi -Ma -HZ -HZ -HZ -HZ -HZ -HZ -"} -(3,1,1) = {" -HZ -HZ -HZ -HZ -Ye -BE -Ye -VY -UD -UD -vA -Ye -np -np -Ye -HZ -HZ -HZ -"} -(4,1,1) = {" -HZ -HZ -HZ -HZ -Ye -yu -XR -gz -iZ -iZ -BD -Ye -gT -cp -Ye -HZ -HZ -HZ -"} -(5,1,1) = {" -HZ -HZ -HZ -Ye -Ye -Ze -Ye -KO -uA -Mv -ZX -Ye -gT -ea -Ye -HZ -HZ -HZ -"} -(6,1,1) = {" -Ye -Ye -Ye -Ye -CO -lU -Ye -iZ -UH -EF -ia -Ye -YN -YN -Ye -Ye -Ye -Ye -"} -(7,1,1) = {" -Ye -IB -nT -PV -FE -QD -Ye -iZ -FS -vn -bI -Ye -GB -nD -nD -gg -zM -ki -"} -(8,1,1) = {" -Ma -KH -Ye -ee -mX -zg -Ye -YV -aY -vl -dt -Ye -GB -aB -Ng -nD -Ad -ki -"} -(9,1,1) = {" -Ye -jX -Ye -iw -wC -Sc -Ye -iZ -Ae -YQ -rR -Ye -GB -Tj -uQ -dF -uL -ki -"} -(10,1,1) = {" -Ye -Ye -Ye -kC -wC -WO -Ye -iZ -kX -Sa -rR -Ye -nE -mE -MT -Ba -kP -Ml -"} -(11,1,1) = {" -Ye -PE -Ye -kC -wC -Ye -Ye -yO -Ye -Ye -Af -Ye -Ye -Mw -aB -aB -Jk -ki -"} -(12,1,1) = {" -Ma -lt -nT -nA -ep -Ye -zW -aT -Gn -jC -Iv -eG -PX -oF -mt -zt -fS -Ye -"} -(13,1,1) = {" -Ye -Ye -Ye -CO -TO -fi -yN -JL -GD -jR -MO -Uq -uZ -rH -eA -XY -bv -Ma -"} -(14,1,1) = {" -Ma -wJ -nT -Nu -rv -fi -yN -JL -wL -OD -JL -Ox -fK -nD -NZ -SG -SG -Ma -"} -(15,1,1) = {" -Ye -MN -Ye -kC -ep -IK -yN -JL -JL -JL -iE -SR -PX -nD -Er -mL -RK -Ye -"} -(16,1,1) = {" -Ye -Ye -Ye -ee -wC -gs -gn -JL -Kg -rl -iE -Ox -Ye -La -Ye -Ye -Ye -Ye -"} -(17,1,1) = {" -cD -HW -JA -Hg -Ud -gs -yN -Wr -JL -JL -iE -SR -Ye -se -aB -zX -UW -ny -"} -(18,1,1) = {" -KG -vV -OF -CO -Ud -Ye -HK -Oj -Hs -Oj -Hs -fL -gs -se -aB -zX -lN -ny -"} -(19,1,1) = {" -Ye -Ye -Ye -Ak -Ye -Ye -kt -Oj -Hs -Oj -Oj -Kc -bs -om -aB -wg -Ye -Ye -"} -(20,1,1) = {" -Ye -uk -zY -nl -zY -Ye -aK -Oj -Hs -Oj -Hs -kg -Ye -Om -aB -nD -vv -Ye -"} -(21,1,1) = {" -Ye -hS -yg -nl -zs -Ye -jl -Oj -Oj -iQ -Oj -Kc -fK -fQ -aB -nD -di -Ma -"} -(22,1,1) = {" -Ye -uw -dv -nl -dq -Ye -QY -Oj -Oj -Oj -Oj -Bw -Ye -in -aB -aB -Xr -Ma -"} -(23,1,1) = {" -Ye -Ye -Ye -Kb -Ye -Ye -Gg -NT -Oj -Oj -Xv -dr -Ye -TN -aB -kS -dy -Ye -"} -(24,1,1) = {" -Ye -Nj -tw -vS -Sg -Ye -Ye -Ye -Ql -Ql -Ye -Ye -Ye -jH -aB -pT -Td -Ma -"} -(25,1,1) = {" -Ye -KC -tw -kY -Ye -Ye -YZ -Dp -pi -hN -wR -RB -Ye -Ye -oO -aB -bR -Ma -"} -(26,1,1) = {" -Ma -Ld -vS -tw -fi -JX -FT -FT -DY -hN -FT -FT -Mx -fi -nD -nD -hu -Ye -"} -(27,1,1) = {" -Ma -Ma -FP -kw -Ye -bx -PD -nc -pi -nL -nH -Qz -Gr -Ye -qt -qt -Ye -Ye -"} -(28,1,1) = {" -HZ -Ye -Ye -Ye -Ye -Ye -Ye -Ye -LL -LL -Ye -Ye -Ye -Ye -Ye -Ye -Ye -HZ -"} -(29,1,1) = {" -HZ -tI -nt -nt -tI -nt -nt -Ye -fy -ea -Ye -nt -nt -tI -nt -nt -tI -HZ -"} -(30,1,1) = {" -HZ -tI -dc -dc -tI -dc -dc -Ye -DM -DM -Ye -dc -dc -tI -dc -dc -tI -HZ -"} 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_pubbyslopcrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm new file mode 100644 index 000000000000..1cd150e9b8dc --- /dev/null +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm @@ -0,0 +1,3321 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"as" = ( +/obj/machinery/light/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder{ + pixel_x = 6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/snacks/meat/slab/xeno, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash) +"aR" = ( +/obj/structure/sign/number/one, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"ba" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"by" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod, +/area/ruin/whitesands/pubbycrash) +"bS" = ( +/obj/item/t_scanner/adv_mining_scanner/lesser, +/obj/item/kinetic_crusher, +/obj/structure/rack, +/obj/item/pickaxe/mini, +/obj/item/pickaxe/mini, +/obj/effect/turf_decal/siding/brown, +/obj/item/gun/energy/kinetic_accelerator, +/obj/machinery/firealarm/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"bW" = ( +/obj/effect/turf_decal/box, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"bZ" = ( +/turf/open/floor/plating/asteroid/whitesands, +/area/overmap_encounter/planetoid/sand) +"ck" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"co" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"cp" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"ct" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"cx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"cN" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash) +"di" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 12 + }, +/obj/structure/railing, +/obj/machinery/airalarm/directional/east, +/obj/item/stack/sheet/cotton/cloth, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash) +"dm" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "engine fuel pump" + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"dW" = ( +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"ek" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/button/door{ + id = "pubbywspodsw"; + name = "Pod Door Control"; + pixel_x = -25; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/structure/salvageable/server, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"eq" = ( +/obj/structure/sign/number/one, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"ff" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ruin/whitesands/pubbycrash) +"fk" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box{ + pixel_y = 2 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"fA" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"fO" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"fR" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"fX" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"gg" = ( +/obj/structure/reagent_dispensers/servingdish, +/obj/structure/table/reinforced, +/obj/item/kitchen/spoon/plastic{ + pixel_x = 6 + }, +/obj/item/kitchen/spoon/plastic{ + pixel_x = -1 + }, +/obj/item/kitchen/spoon/plastic{ + pixel_x = 13 + }, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash) +"gs" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-8" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"gu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/whitesands/pubbycrash) +"gx" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-5" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"gy" = ( +/obj/effect/turf_decal/box, +/obj/structure/table/reinforced, +/obj/structure/railing, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"gG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"gL" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"hh" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"ho" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"hz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"hA" = ( +/obj/structure/closet/wall/red{ + dir = 4; + name = "Pilots locker"; + pixel_x = -29; + welded = 1 + }, +/obj/item/clothing/under/suit/black, +/obj/item/clothing/under/suit/black, +/obj/item/clothing/suit/jacket, +/obj/item/clothing/suit/jacket, +/obj/item/clothing/head/beret/black, +/obj/item/clothing/head/beret/black, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 1 + }, +/obj/item/clothing/under/rank/security/officer/nt, +/obj/item/clothing/under/rank/security/officer/nt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"iw" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"iW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"jt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"jA" = ( +/obj/item/trash/cheesie{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"jF" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"jG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/ntspaceworks_small/left{ + dir = 4 + }, +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 4; + faction = list("saloon") + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"kp" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"kA" = ( +/obj/item/reagent_containers/food/drinks/britcup{ + pixel_x = 9; + pixel_y = -3 + }, +/obj/item/trash/pistachios{ + pixel_y = 5 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"kM" = ( +/obj/structure/table/reinforced, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 8 + }, +/obj/item/photo{ + pixel_y = -12 + }, +/obj/item/toy/figure/captain{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/machinery/airalarm/directional/west, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"kP" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/yellow, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"kU" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/whitesands/pubbycrash) +"ln" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"ly" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/whitesands/pubbycrash) +"lA" = ( +/obj/structure/table/reinforced, +/obj/item/laser_pointer, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 14 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"lB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"lK" = ( +/obj/effect/turf_decal/box, +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/salvageable/autolathe, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"lR" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-46" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"mp" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-3" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"mH" = ( +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"mU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/effect/decal/cleanable/ash{ + pixel_y = -3; + pixel_x = -6 + }, +/obj/item/gun/energy/laser/hitscanpistol, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"mW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/whitesands/pubbycrash) +"nq" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-55" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"nG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"nP" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"nQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/whitesands/pubbycrash) +"oo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset/wall{ + dir = 1; + pixel_y = -28 + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/whitesands/pubbycrash) +"oq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"oO" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"oS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"pe" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/catwalk, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/item/stock_parts/cell/hyper{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/stack/ore/salvage/scrapmetal/five{ + pixel_x = -9 + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"pu" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/ntspaceworks_small/right{ + dir = 4 + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, +/obj/item/storage/box/stockparts/basic{ + pixel_x = -3; + pixel_y = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"pE" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"pG" = ( +/obj/machinery/firealarm/directional/west, +/turf/closed/mineral/random/whitesands, +/area/overmap_encounter/planetoid/cave/explored) +"pR" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/structure/salvageable/server, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"pT" = ( +/obj/effect/turf_decal/box, +/obj/structure/table/reinforced, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance/five, +/obj/effect/spawner/lootdrop/maintenance/five, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"qz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Engine Access" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/cut/red, +/obj/item/circuitboard/machine/shuttle/smes, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"qN" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-74" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"re" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"rT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"rW" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"rZ" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"sd" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-2" + }, +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 1; + faction = list("adobe"); + desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body, twisted by the heavy metals and high background radiation of the sandworlds. Their helmet also seems to be filled with vomit" + }, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"so" = ( +/obj/effect/turf_decal/industrial/caution, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/structure/catwalk, +/obj/structure/sign/poster/retro/nanotrasen_logo_70s{ + pixel_x = -32 + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"ss" = ( +/obj/machinery/light/directional/west, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -4 + }, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/folder/white, +/obj/item/pen, +/obj/structure/railing{ + dir = 8 + }, +/obj/item/stamp/captain{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 2; + pixel_y = -14 + }, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 2; + pixel_y = -14 + }, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 4; + pixel_y = -16 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"sA" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash) +"sC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"sD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/ash{ + pixel_y = -3; + pixel_x = -6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"sV" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"uh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"ul" = ( +/mob/living/simple_animal/hostile/asteroid/whitesands/ranged, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"up" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"uB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/ash{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"vc" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"vw" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/effect/gibspawner, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"vL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"vO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/ash{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/ash{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"vX" = ( +/obj/item/radio/intercom/directional/west, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"wn" = ( +/obj/effect/turf_decal/siding/brown, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 5 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"wL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/wall/red{ + dir = 8; + name = "Firearm Locker"; + pixel_x = 29; + welded = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/item/gun/ballistic/automatic/pistol/commander, +/obj/item/gun/ballistic/automatic/pistol/commander, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"wV" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/catwalk, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"xa" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/turf_decal/industrial/warning{ + dir = 9 + }, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"xc" = ( +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"xy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"xA" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/structure/salvageable/computer, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"yj" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/noticeboard{ + pixel_y = 31 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"ym" = ( +/obj/effect/gibspawner, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"yt" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-141" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"yx" = ( +/obj/structure/railing/corner, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 1 + }, +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 4; + faction = list("adobe"); + desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body, twisted by the heavy metals and high background radiation of the sandworlds. Their helmet also seems to be filled with vomit" + }, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"yK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/grunge{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"yU" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"zi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"zP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"zX" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/reagent_dispensers/servingdish, +/obj/item/kitchen/spoon/plastic{ + pixel_x = -1 + }, +/obj/item/kitchen/spoon/plastic{ + pixel_x = 13 + }, +/obj/item/kitchen/spoon/plastic{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Ak" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/pistachios{ + pixel_y = 5 + }, +/obj/item/trash/energybar, +/obj/item/trash/cheesie, +/obj/item/trash/can/food, +/obj/item/trash/sosjerky{ + pixel_x = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"AH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"AJ" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/whitesands/pubbycrash) +"AO" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Bd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Bz" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"BD" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"BH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Cg" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/stack/cable_coil, +/obj/structure/sign/poster/contraband/red_rum{ + pixel_x = 30 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Cs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"Ct" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + faction = list("saloon") + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Cw" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"Dg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"Di" = ( +/obj/structure/railing/corner, +/turf/closed/mineral/random/whitesands, +/area/overmap_encounter/planetoid/cave/explored) +"Dn" = ( +/obj/structure/railing, +/obj/structure/salvageable/computer{ + dir = 8 + }, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Dx" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"DB" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/structure/salvageable/machine, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash) +"DQ" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"DY" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 6 + }, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Ea" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/whitesands/pubbycrash) +"Eb" = ( +/obj/structure/frame/machine, +/obj/item/circuitboard/machine/shuttle/engine/plasma, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"Eh" = ( +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"Em" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/lighter/enigma, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"Et" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/obj/effect/turf_decal/ntspaceworks_small{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Ew" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 10 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"EG" = ( +/obj/machinery/door/airlock/hatch{ + welded = 1 + }, +/turf/template_noop, +/area/ruin/whitesands/pubbycrash) +"ET" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/west, +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 1; + faction = list("saloon") + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Fc" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Engine Access" + }, +/obj/structure/frame/machine, +/obj/item/circuitboard/machine/shuttle/heater, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"Fn" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/whitesands/pubbycrash) +"Fq" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"FP" = ( +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"FY" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Ga" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Gi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/airlock/highsecurity, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Gl" = ( +/turf/template_noop, +/area/template_noop) +"GA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash) +"GF" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northright{ + dir = 4; + name = "Engine Access" + }, +/obj/structure/frame/machine, +/obj/item/circuitboard/machine/shuttle/heater, +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapplasma/five, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"GK" = ( +/obj/structure/closet/wall/blue{ + dir = 1; + name = "Captain's locker"; + pixel_y = -28 + }, +/obj/item/clothing/suit/space/hardsuit/mining/heavy, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"Ha" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Hb" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Ho" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/light/directional/east, +/obj/effect/gibspawner, +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"Hq" = ( +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapgold, +/obj/item/stack/ore/salvage/scrapgold, +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"HQ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/structure/railing/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"If" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"Ig" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/salvageable/machine, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Ik" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash) +"In" = ( +/obj/structure/railing, +/turf/closed/mineral/random/whitesands, +/area/overmap_encounter/planetoid/cave/explored) +"IC" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"IQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Ji" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/whitesands/pubbycrash) +"Jz" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"JI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Kt" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Ky" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/whitesands/pubbycrash) +"KB" = ( +/obj/structure/salvageable/computer, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"KI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/plasma, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"KO" = ( +/obj/machinery/power/apc/auto_name/directional/east{ + start_charge = 10 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"KS" = ( +/obj/effect/turf_decal/box, +/obj/structure/table/reinforced, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/multitool, +/obj/structure/railing, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"KT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"Lj" = ( +/obj/machinery/door/airlock/glass, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Lm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/whitesands/pubbycrash) +"Ls" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/siding/brown, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"LM" = ( +/turf/closed/mineral/random/whitesands, +/area/ruin/whitesands/pubbycrash) +"LU" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/number/nine{ + dir = 4 + }, +/obj/item/stock_parts/cell/hyper, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"LW" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"Mi" = ( +/obj/structure/sign/number/two, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/gibspawner, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"Ml" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northright{ + dir = 4; + name = "Engine Access" + }, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/cut/red, +/obj/item/circuitboard/machine/shuttle/smes, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"Mr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/salvageable/computer{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"NI" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"Og" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/structure/railing{ + dir = 10; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Oz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/effect/decal/cleanable/ash{ + pixel_y = -2; + pixel_x = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"Pr" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning/corner, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Pu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"PA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/whitesands/pubbycrash) +"PI" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/whitesands/pubbycrash) +"PK" = ( +/obj/effect/gibspawner, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"PY" = ( +/obj/effect/decal/cleanable/generic, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"PZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "engine fuel pump" + }, +/obj/machinery/light/small/directional/north, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/item/stack/sheet/mineral/wood/fifty, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Qb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/vomit/old, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, +/obj/effect/gibspawner, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Qo" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-9" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"Qu" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/whitesands/pubbycrash) +"Qw" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/number/seven{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"QD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/whitesands/pubbycrash) +"QI" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"QR" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/whitesands/pubbycrash) +"RC" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"RL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/plastic, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"RT" = ( +/turf/closed/mineral/random/whitesands, +/area/overmap_encounter/planetoid/cave/explored) +"Sy" = ( +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"SO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/whitesands/pubbycrash) +"SU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"Tg" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/mob_spawn/human/corpse/damaged/whitesands/survivor, +/turf/open/floor/plastic, +/area/ruin/whitesands/pubbycrash) +"TB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"TF" = ( +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"Uo" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Us" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/vomit/old, +/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ + dir = 1; + faction = list("saloon") + }, +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Uy" = ( +/obj/machinery/door/airlock/hatch{ + welded = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/pod, +/area/ruin/whitesands/pubbycrash) +"Vj" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, +/turf/open/floor/engine/hull, +/area/ruin/whitesands/pubbycrash) +"Vt" = ( +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"VG" = ( +/obj/structure/sign/number/two, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"VK" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"VP" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-2" + }, +/turf/open/floor/plating/asteroid/whitesands/lit, +/area/overmap_encounter/planetoid/sand) +"Wg" = ( +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapgold, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"Wo" = ( +/obj/structure/bed/dogbed{ + anchored = 1; + name = "citrus's bed" + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 9 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/pod, +/area/ruin/whitesands/pubbycrash) +"WD" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/whitesands/pubbycrash) +"Xm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"Xn" = ( +/obj/effect/turf_decal/industrial/caution, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/catwalk, +/obj/machinery/button/door{ + id = "whiteshipubbyEngines"; + name = "Engine Lockdown Control"; + pixel_x = -25; + dir = 4 + }, +/obj/structure/salvageable/destructive_analyzer, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"XA" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/whitesands/pubbycrash) +"XK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/whitesands/pubbycrash) +"Yt" = ( +/obj/machinery/newscaster/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + initial_gas_mix = "ws_atmos" + }, +/area/ruin/whitesands/pubbycrash) +"Yu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/number/four{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/whitesands/pubbycrash) +"YC" = ( +/obj/structure/closet/wall/white{ + dir = 1; + name = "Medicine storage"; + pixel_y = -30 + }, +/obj/item/storage/firstaid/ancient{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/item/storage/firstaid/medical, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/pod, +/area/ruin/whitesands/pubbycrash) +"YL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/industrial/outline/grey, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"Zg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/catwalk, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/structure/salvageable/protolathe, +/turf/open/floor/plating, +/area/ruin/whitesands/pubbycrash) +"Zj" = ( +/turf/open/floor/engine/hull, +/area/ruin/whitesands/pubbycrash) +"Zk" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/structure/closet/wall{ + icon_door = "orange_wall"; + name = "Mining equipment"; + pixel_y = 28 + }, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) +"Zp" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/whitesands/pubbycrash) + +(1,1,1) = {" +Gl +Gl +Gl +Gl +Gl +Gl +RT +RT +RT +RT +RT +RT +RT +RT +RT +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +"} +(2,1,1) = {" +Gl +Gl +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +Gl +Gl +Gl +Gl +Gl +Gl +"} +(3,1,1) = {" +Gl +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +Gl +Gl +Gl +Gl +Gl +"} +(4,1,1) = {" +Gl +RT +RT +RT +RT +cN +dW +Eb +LM +cN +Ky +cN +cN +Hq +Wg +cN +RT +RT +RT +RT +RT +Vt +Gl +Gl +Gl +"} +(5,1,1) = {" +Gl +RT +RT +RT +RT +cN +qz +GF +cN +cN +SO +oo +cN +Fc +Ml +cN +RT +RT +RT +RT +RT +Vt +Vt +Gl +Gl +"} +(6,1,1) = {" +Gl +Gl +RT +RT +RT +cN +QI +dm +cN +cN +mW +cN +Ji +PZ +fO +cN +RT +RT +RT +RT +Vt +Vt +Vt +Gl +Gl +"} +(7,1,1) = {" +Gl +Gl +RT +RT +RT +cN +SU +HQ +cN +xA +pu +Et +jG +yU +oS +Dx +RT +RT +RT +RT +Vt +Vt +Vt +Gl +Gl +"} +(8,1,1) = {" +Gl +Gl +RT +RT +RT +cN +rW +sV +cN +Pr +Qw +LU +Yu +kP +AH +Dx +RT +RT +RT +RT +Vt +Vt +Vt +Vt +Gl +"} +(9,1,1) = {" +Gl +Gl +RT +RT +RT +cN +cN +Qu +cN +Ha +Hb +ln +cN +DY +PI +cN +RT +RT +RT +RT +Vt +Vt +Vt +Vt +Gl +"} +(10,1,1) = {" +Gl +RT +RT +RT +Vj +GA +YL +iW +Xn +Zg +pe +wV +so +lB +re +cN +Zj +RT +RT +Vt +Vt +Vt +Vt +Vt +Vt +"} +(11,1,1) = {" +RT +RT +RT +RT +AJ +cN +VK +ho +Ho +Dg +Cs +zP +KO +xa +Ew +cN +AJ +RT +RT +Vt +Vt +Vt +Vt +Vt +Vt +"} +(12,1,1) = {" +RT +RT +RT +RT +sA +cN +LW +LW +cN +cN +gG +cN +cN +LW +LW +cN +sA +RT +RT +Vt +Vt +Vt +Vt +Vt +Vt +"} +(13,1,1) = {" +RT +RT +RT +RT +RT +RT +aR +Sy +ET +cp +PA +fR +AO +jt +Mi +ek +RT +RT +RT +Vt +Vt +Vt +Vt +Vt +Vt +"} +(14,1,1) = {" +RT +RT +RT +RT +RT +RT +RT +Bz +pT +JI +Lm +BH +KS +up +RT +RT +RT +RT +RT +Vt +Vt +Vt +Vt +Vt +Vt +"} +(15,1,1) = {" +Gl +RT +RT +RT +RT +RT +gL +vc +bW +DQ +gu +Ct +gy +fX +vc +RT +RT +RT +RT +bZ +Vt +Vt +Vt +Vt +Gl +"} +(16,1,1) = {" +Gl +Gl +RT +RT +RT +pR +eq +vL +FP +KI +QD +vw +lK +RT +VG +WD +RT +RT +RT +bZ +Vt +Vt +Vt +Vt +Gl +"} +(17,1,1) = {" +Gl +Gl +RT +RT +sA +cN +cN +RC +zX +Uo +nQ +XK +FY +nP +cN +cN +sA +RT +RT +bZ +Vt +Vt +Vt +Vt +Gl +"} +(18,1,1) = {" +Gl +Gl +RT +RT +RT +ck +Kt +Bd +fA +IQ +Ea +wL +zi +oq +hh +ck +ba +Cw +Vt +Vt +Vt +Vt +Vt +Gl +Gl +"} +(19,1,1) = {" +Gl +Gl +RT +RT +RT +cN +cN +cN +cN +cN +yK +cN +cN +cN +cN +cN +cN +Vt +Cw +Vt +Vt +Vt +Vt +Gl +Gl +"} +(20,1,1) = {" +Gl +Gl +RT +RT +RT +pG +Di +ff +by +Uy +co +ly +PK +jF +mH +Vt +IC +Vt +Vt +Cw +VP +gx +Vt +Gl +Gl +"} +(21,1,1) = {" +Gl +Gl +RT +RT +RT +RT +In +Wo +YC +cN +RL +cN +Fq +If +Vt +Vt +kp +Cw +Vt +VP +nq +yt +RT +Gl +Gl +"} +(22,1,1) = {" +Gl +RT +RT +RT +cN +cN +cN +cN +cN +cN +TB +cN +mH +IC +RT +Vt +Vt +Vt +cN +cN +cN +cN +RT +Gl +Gl +"} +(23,1,1) = {" +Gl +RT +RT +RT +iw +vX +rZ +QR +cN +Ak +xy +Pu +Cw +Vt +RT +VP +gx +xc +cN +Zk +Ls +cN +RT +RT +Gl +"} +(24,1,1) = {" +Gl +Gl +RT +RT +iw +jA +kA +NI +Lj +Us +sC +cN +Vt +RT +RT +IC +lR +nq +cN +Zp +bS +cN +RT +RT +Gl +"} +(25,1,1) = {" +Gl +Gl +RT +RT +iw +PY +KT +ct +cN +Ig +nG +cN +Vt +RT +Vt +Vt +cN +cN +cN +Fn +wn +cN +RT +RT +Gl +"} +(26,1,1) = {" +Gl +Gl +RT +RT +cN +yj +Cg +fk +cN +BD +Ga +cN +ul +Cw +Cw +sd +Eh +hA +yx +pE +XA +cN +RT +RT +RT +"} +(27,1,1) = {" +Gl +Gl +RT +RT +cN +cN +cN +cN +cN +cN +Gi +cN +Jz +kp +Vt +Vt +cN +gg +Tg +sD +rT +iw +RT +RT +RT +"} +(28,1,1) = {" +Gl +Gl +RT +RT +RT +RT +cN +kM +ss +Og +kU +If +yt +Vt +IC +Vt +cN +as +Ik +vO +Xm +iw +RT +RT +RT +"} +(29,1,1) = {" +Gl +Gl +Gl +RT +RT +RT +cN +KB +Qb +hz +cx +uh +oO +mp +gx +Vt +cN +DB +di +TF +uB +iw +RT +RT +RT +"} +(30,1,1) = {" +Gl +Gl +Gl +RT +RT +RT +RT +RT +Mr +Dn +lA +If +Qo +ym +gs +Cw +cN +cN +cN +cN +cN +cN +RT +RT +RT +"} +(31,1,1) = {" +Gl +Gl +Gl +RT +RT +RT +RT +RT +RT +RT +RT +cN +IC +Vt +Vt +Vt +cN +Yt +mU +cN +cN +AJ +RT +RT +Gl +"} +(32,1,1) = {" +Gl +Gl +RT +RT +RT +RT +RT +RT +RT +RT +RT +RT +Vt +Cw +VP +nq +EG +Em +GK +cN +AJ +RT +RT +RT +Gl +"} +(33,1,1) = {" +Gl +Gl +RT +RT +RT +RT +RT +RT +RT +Vt +Vt +Vt +kp +IC +Vt +qN +cN +Oz +cN +AJ +RT +RT +RT +RT +Gl +"} +(34,1,1) = {" +Gl +Gl +Gl +RT +RT +RT +Vt +Vt +Vt +Vt +Jz +Vt +Vt +Vt +Vt +RT +RT +RT +RT +RT +RT +RT +Gl +Gl +Gl +"} +(35,1,1) = {" +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Vt +Vt +Vt +Vt +Vt +Vt +Vt +Gl +RT +RT +RT +RT +RT +RT +Gl +Gl +Gl +Gl +"} +(36,1,1) = {" +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Gl +Vt +Vt +Vt +Vt +Gl +Gl +Gl +Gl +RT +RT +RT +Gl +Gl +Gl +Gl +Gl +Gl +"} 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/Fast_Food.dmm b/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm index 3c98825f7924..5c04f6ced446 100644 --- a/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm +++ b/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm @@ -1163,7 +1163,6 @@ /area/ruin/space/has_grav/powered/macspace) "cz" = ( /obj/structure/table, -/obj/item/reagent_containers/food/snacks/kebab/tail, /obj/structure/table/wood/fancy/blue, /turf/open/floor/carpet, /area/ruin/space/has_grav/powered/macspace) diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 93b0dc996b77..fd062bcd87a4 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -132,7 +132,6 @@ /obj/structure/closet/crate/freezer, /obj/item/organ/appendix, /obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem, /obj/effect/turf_decal/industrial/warning{ dir = 1 }, @@ -431,7 +430,6 @@ /obj/item/reagent_containers/food/snacks/hugemushroomslice, /obj/item/organ/appendix, /obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine, /obj/effect/turf_decal/industrial/warning{ dir = 2 }, 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/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 321daa633782..8c2493f833d6 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -283,6 +283,14 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/comm) +"aS" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) "aT" = ( /turf/closed/wall, /area/ruin/space/has_grav/ancientstation) @@ -6184,148 +6192,164 @@ /mob/living/simple_animal/hostile/alien, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) -"ra" = ( +"re" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betastorage) +"rH" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/atmo) -"rd" = ( +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"rN" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) -"rv" = ( +/obj/machinery/light/small/directional/north, /obj/effect/decal/cleanable/dirt, -/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 = "4-8" }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"se" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"sg" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/west, +/obj/item/broken_bottle, +/obj/item/soap/nanotrasen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/rnd) +"si" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/sec) -"rB" = ( +/area/ruin/space/has_grav/ancientstation) +"su" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/corner/opaque/red{ +/obj/machinery/light/small/directional/west{ + brightness = 3 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/red{ +/obj/effect/turf_decal/corner/opaque/yellow{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/sec) -"rE" = ( -/obj/machinery/door/airlock/science{ - pixel_y = 0; - dir = 4 +/area/ruin/space/has_grav/ancientstation/engi) +"sy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/engi) +"sz" = ( +/obj/structure/table, /obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/item/paper/fluff/ruins/oldstation, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"sC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"sD" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/alien/weeds, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/ancientstation/deltaai) +"sH" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"sa" = ( /obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/atmo) +"sO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, /obj/machinery/light/small/directional/east, /obj/effect/turf_decal/corner/opaque/yellow, /obj/effect/turf_decal/corner/opaque/yellow{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/light_switch{ + pixel_x = 26 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/engi) -"sk" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/flashlight/glowstick, +"sV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/west, +/obj/machinery/airalarm/directional/west, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"sy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/engi) -"sC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock, -/turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation) "sY" = ( /obj/structure/lattice, /obj/item/stack/rods, /turf/template_noop, /area/space/nearstation) -"td" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/particle_accelerator/particle_emitter/center, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"te" = ( -/obj/machinery/light/directional/west, -/obj/structure/table/reinforced, -/obj/item/paper/fluff/ruins/oldstation/protohealth, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) -"tg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, +"sZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/light/small/directional/west{ + brightness = 3 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/corner/opaque/yellow{ dir = 8 }, -/obj/machinery/door/airlock/command{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, +/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/betacorridor) +/area/ruin/space/has_grav/ancientstation/engi) +"tb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"td" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/particle_accelerator/particle_emitter/center, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) "tn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair, @@ -6337,62 +6361,37 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/kitchen) -"to" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"tK" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering"; - dir = 4 - }, +"tq" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/corner/opaque/yellow{ dir = 4 }, -/obj/machinery/door/poddoor{ - id = "ancient"; - dir = 8 - }, +/obj/machinery/airalarm/directional/east, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/engi) -"tL" = ( +"tN" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/gun/energy/laser/retro/old{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/gun/energy/laser/retro/old{ - pixel_x = 2; - pixel_y = 2 - }, -/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/machinery/light/small/directional/south, +/obj/effect/turf_decal/corner/opaque/green, +/obj/machinery/light_switch{ + pixel_x = 0; + pixel_y = -26 }, -/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/sec) +/area/ruin/space/has_grav/ancientstation/hydroponics) "tT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/particle_accelerator/end_cap, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"ud" = ( +"ur" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"uB" = ( /obj/item/shard{ icon_state = "medium" }, @@ -6402,74 +6401,90 @@ icon_state = "platingdmg3" }, /area/ruin/space/has_grav/ancientstation/betacorridor) -"uD" = ( -/obj/machinery/door/airlock/highsecurity, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/structure/alien/weeds, -/obj/effect/decal/cleanable/xenoblood/xtracks, -/obj/effect/decal/cleanable/blood/tracks, -/obj/structure/cable{ - icon_state = "1-2" +"uE" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only, +/obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ - dir = 1 + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, /turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltaai) -"uT" = ( -/turf/open/floor/engine/n2, -/area/ruin/space/has_grav/ancientstation/atmo) -"uY" = ( +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"uM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west{ + brightness = 3 + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/sec) -"vb" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"vk" = ( +/area/ruin/space/has_grav/ancientstation) +"uN" = ( +/obj/machinery/light/small/directional/west{ + brightness = 3 + }, +/obj/structure/alien/weeds, +/obj/effect/gibspawner/human, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/ancientstation/deltaai) +"uT" = ( +/turf/open/floor/engine/n2, +/area/ruin/space/has_grav/ancientstation/atmo) +"uW" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/machinery/airalarm/directional/east, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/engi) -"vu" = ( +/area/ruin/space/has_grav/ancientstation) +"uX" = ( +/obj/machinery/door/airlock/medical/glass{ + dir = 4; + name = "Chemical Storage"; + req_access_txt = "200" + }, +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 + dir = 4 }, +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 + dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/kitchen) -"vw" = ( -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/ancientstation/deltaai) -"vK" = ( +/area/ruin/space/has_grav/ancientstation/rnd) +"uY" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/sec) +"vd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants{ + icon_state = "plant-25" + }, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/green{ dir = 4 }, -/obj/machinery/light/small/directional/west{ - brightness = 3 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 8 }, /obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/hydroponics) +"vh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, /obj/effect/turf_decal/corner/opaque/white{ dir = 1 }, @@ -6478,56 +6493,91 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/kitchen) -"vO" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/west, -/obj/item/broken_bottle, -/obj/item/soap/nanotrasen, +"vj" = ( +/obj/machinery/door/airlock/security{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/poddoor{ + dir = 8; + id = "ancient" + }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/rnd) -"vP" = ( +/area/ruin/space/has_grav/ancientstation/sec) +"vr" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/corner/opaque/green, +/obj/machinery/light/small/directional/west, /obj/effect/turf_decal/corner/opaque/green{ - dir = 4 + dir = 1 }, -/obj/machinery/power/apc{ - name = "Charlie Station Garden APC "; - pixel_y = -25; - start_charge = 0 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 8 }, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/l4z, -/obj/item/reagent_containers/glass/bottle/nutrient/rh, +/obj/item/reagent_containers/spray/weedspray, +/obj/item/reagent_containers/spray/pestspray, /obj/structure/closet/crate/hydroponics, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/hydroponics) -"wc" = ( +"vu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/kitchen) +"vK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/east, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"wd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"wx" = ( +/area/ruin/space/has_grav/ancientstation/betacorridor) +"wh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) +"wq" = ( /obj/machinery/door/window/eastleft, /obj/machinery/door/poddoor{ - id = "proto"; - dir = 4 + dir = 4; + id = "proto" }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) +"wu" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 8; + name = "Engineering Storage" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) "wz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -6540,77 +6590,132 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) +"wE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/rnd) +"wF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) "wJ" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 8 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) +/obj/structure/closet/crate/bin, +/obj/machinery/airalarm/directional/south, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/hydroponics) "wL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/engi) -"wM" = ( -/obj/machinery/door/airlock/science{ - dir = 4 - }, +"wP" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"xl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation) +"xB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/yellow{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 + dir = 9 }, /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 + icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"wX" = ( -/obj/machinery/door/airlock/science{ - dir = 4 +/area/ruin/space/has_grav/ancientstation/engi) +"xS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/betacorridor) +"yb" = ( +/obj/structure/table, +/obj/item/crowbar, +/obj/item/flashlight/glowstick, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"yg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/rnd) +"yk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation) +"yp" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4; - icon_state = "tracks" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"xc" = ( +"yq" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "proto" + }, +/obj/machinery/door/window/westright, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) +"yx" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"xk" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"yC" = ( +/obj/machinery/door/airlock/medical/glass{ + dir = 4; + name = "Medical Bay" + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/maintenance_hatch{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, /obj/structure/cable{ icon_state = "4-8" }, @@ -6620,26 +6725,42 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"xl" = ( +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/medbay) +"yD" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/light/small/directional/east, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation) -"xt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"xG" = ( -/obj/machinery/door/airlock/engineering{ - name = "Backup Generator Room"; - dir = 4 +"yE" = ( +/obj/structure/closet/crate, +/obj/item/cautery{ + pixel_x = 4 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/item/hemostat, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/retractor, +/obj/machinery/light/small/broken/directional/west{ + icon_state = "bulb-broken" + }, +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/blue, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/ancientstation/medbay) +"yI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Dining Area" }, /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -6647,91 +6768,60 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/engi) -"xL" = ( -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/effect/turf_decal/corner/opaque/white{ + dir = 2 }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/ancientstation/medbay) -"xP" = ( +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/kitchen) +"yL" = ( +/obj/machinery/airalarm/directional/east, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"ya" = ( -/obj/machinery/light/directional/west, -/obj/structure/table/reinforced, -/obj/item/paper/fluff/ruins/oldstation/protosuit, +/area/ruin/space/has_grav/ancientstation) +"yY" = ( +/obj/machinery/door/window/westleft, +/obj/machinery/door/poddoor{ + dir = 4; + id = "proto" + }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) -"yk" = ( +"zb" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/opaque/red{ dir = 1 }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation) -"yx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"yA" = ( -/obj/machinery/door/airlock/science{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/corner/opaque/red{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"yM" = ( -/obj/machinery/door/airlock/science{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, +/area/ruin/space/has_grav/ancientstation/sec) +"zk" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/green, +/obj/effect/turf_decal/corner/opaque/green{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"yZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/shard{ - icon_state = "small" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light/broken/directional/west{ - icon_state = "tube-broken" +/obj/machinery/power/apc{ + name = "Charlie Station Garden APC "; + pixel_y = -25; + start_charge = 0 }, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/reagent_containers/glass/bottle/nutrient/l4z, +/obj/item/reagent_containers/glass/bottle/nutrient/rh, +/obj/structure/closet/crate/hydroponics, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-8" }, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/ancientstation/betacorridor) -"zb" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/airalarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) +/area/ruin/space/has_grav/ancientstation/hydroponics) "zm" = ( /obj/machinery/door/window/brigdoor{ dir = 8; @@ -6746,43 +6836,14 @@ }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/atmo) -"zq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ +"zD" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/engi) -"zz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"zB" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/item/paper/fluff/ruins/oldstation, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"zF" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/east, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) "zG" = ( @@ -6816,7 +6877,7 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) -"Ae" = ( +"Al" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -6834,12 +6895,45 @@ dir = 4 }, /obj/machinery/door/airlock/atmos/glass{ - name = "Station Atmospherics"; - dir = 4 + dir = 4; + name = "Station Atmospherics" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) -"Ax" = ( +"Ap" = ( +/obj/effect/spawner/structure/window/hollow/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor{ + dir = 8; + id = "ancient" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/engi) +"As" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"AE" = ( /obj/structure/window/reinforced{ dir = 8 }, @@ -6847,79 +6941,111 @@ dir = 8; icon_state = "inje_map-2" }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/engine/n2, +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine/o2, /area/ruin/space/has_grav/ancientstation/atmo) "AF" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"AP" = ( -/obj/machinery/door/airlock/command{ - dir = 4 - }, +"Bs" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine/o2, +/area/ruin/space/has_grav/ancientstation/atmo) +"Bz" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/chair{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/blue{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/betacorridor) -"AQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, +/area/ruin/space/has_grav/ancientstation/comm) +"BB" = ( +/obj/machinery/airalarm/directional/west, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"Bi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +"BH" = ( +/obj/structure/particle_accelerator/particle_emitter/left, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"BQ" = ( +/obj/machinery/light/small/directional/west{ + brightness = 3 + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/ancientstation/deltaai) +"BV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + dir = 4; + name = "Engineering External Access" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/engi) +"Cf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 4 + }, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/yellow{ dir = 4 }, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/atmo) +"Cg" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/red, +/obj/effect/turf_decal/corner/opaque/red{ dir = 4 }, -/obj/machinery/airalarm/directional/south, -/obj/structure/cable{ - icon_state = "4-8" - }, +/obj/structure/closet/crate/bin, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/betacorridor) -"Bl" = ( -/obj/machinery/light/small/broken/directional/north{ - icon_state = "bulb-broken" +/area/ruin/space/has_grav/ancientstation/sec) +"Ci" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair{ + dir = 4 }, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/ancientstation/atmo) -"Bo" = ( -/obj/structure/closet, -/obj/item/tank/jetpack/void, -/obj/item/clothing/head/helmet/space/nasavoid/old, -/obj/item/clothing/suit/space/nasavoid, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 +/obj/machinery/light/small/directional/west{ + brightness = 3 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/corner/opaque/white{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 2 + }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/mining) -"Bs" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/engine/o2, -/area/ruin/space/has_grav/ancientstation/atmo) -"BH" = ( -/obj/structure/particle_accelerator/particle_emitter/left, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) +/area/ruin/space/has_grav/ancientstation/kitchen) "Cr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 8 @@ -6934,57 +7060,69 @@ /area/ruin/space/has_grav/ancientstation/kitchen) "Cu" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/backpack/old, +/obj/structure/closet, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"CG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/mining) +"CM" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/iodine{ + pixel_y = 8 }, -/obj/machinery/light/directional/north, -/obj/machinery/light_switch{ - pixel_x = 0; - pixel_y = 26 +/obj/item/reagent_containers/glass/bottle/iron{ + pixel_x = 6 + }, +/obj/item/reagent_containers/glass/bottle/lithium{ + pixel_x = -6 }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) -"Cz" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/obj/structure/table, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) -"Da" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/yellow, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/rnd) +"CR" = ( +/obj/machinery/door/airlock/science{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/public/glass{ - name = "Dining Area"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/kitchen) -"De" = ( +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"CU" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants{ - icon_state = "plant-25" - }, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/green, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 4 - }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/east, +/mob/living/simple_animal/hostile/alien/drone, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/hydroponics) +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"CX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) "Dm" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -6992,19 +7130,10 @@ /area/ruin/space/has_grav/ancientstation/sec) "Dn" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/west, -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 8 - }, +/obj/machinery/airalarm/directional/east, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/atmo) +/area/ruin/space/has_grav/ancientstation/deltacorridor) "Dp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -7035,13 +7164,35 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/rnd) -"DO" = ( +"DM" = ( +/obj/machinery/door/airlock/science{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/structure/table, -/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"DQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/corner/opaque/purple{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/purple, +/obj/effect/turf_decal/corner/opaque/purple{ + dir = 8 + }, /turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation) +/area/ruin/space/has_grav/ancientstation/rnd) "DT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -7052,60 +7203,61 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) -"DX" = ( +"DY" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/north, +/obj/machinery/light/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/mob/living/simple_animal/hostile/alien/drone, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"Ex" = ( +"Eh" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"EB" = ( +/obj/structure/rack, /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/betacorridor) -"EH" = ( -/obj/item/kirbyplants{ - icon_state = "plant-25" +/obj/structure/rack, +/obj/item/gun/energy/laser/retro{ + pixel_x = -2; + pixel_y = -2 }, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/light/small/broken/directional/west{ - icon_state = "bulb-broken" +/obj/item/gun/energy/laser/retro{ + pixel_x = 2; + pixel_y = 2 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/corner/opaque/red{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/corner/opaque/red, +/obj/effect/turf_decal/corner/opaque/red{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/sec) +"ED" = ( +/obj/machinery/door/airlock/science{ dir = 4 }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/ancientstation/medbay) -"EI" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/alien/weeds, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/ancientstation/deltaai) -"EN" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4; + icon_state = "tracks" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) "EP" = ( @@ -7127,22 +7279,6 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) -"EY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"Fn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"FD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/rnd) "FH" = ( /obj/structure/window/reinforced{ dir = 4 @@ -7158,73 +7294,35 @@ }, /turf/open/floor/plasteel/airless, /area/ruin/space/has_grav/ancientstation/atmo) -"FJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) -"FR" = ( -/obj/machinery/door/airlock/science{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +"Gh" = ( +/obj/machinery/door/airlock/maintenance_hatch{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"FT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/xenoblood/xgibs/up, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) "Gp" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/ancientstation/deltaai) -"Gq" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/door/airlock/command{ + dir = 4; + name = "Delta Station Access" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/door/poddoor{ + dir = 4; + id = "ancient" }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/engi) -"Gs" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, /obj/machinery/door/firedoor/border_only{ dir = 4 @@ -7232,19 +7330,17 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/engi) +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"GE" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/betacorridor) "GG" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance/three, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"GJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/betacorridor) "GP" = ( /obj/machinery/pipedispenser/disposal, /obj/effect/turf_decal/industrial/warning/corner{ @@ -7252,6 +7348,12 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) +"GX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) "Hn" = ( /turf/open/floor/engine/o2, /area/ruin/space/has_grav/ancientstation/atmo) @@ -7263,99 +7365,16 @@ /obj/effect/turf_decal/corner/opaque/yellow, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) -"HL" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Engineering Storage"; - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"HV" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light_switch{ - pixel_x = 26 - }, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/ancientstation/betastorage) -"HZ" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +"HI" = ( +/obj/structure/window/reinforced{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"Ig" = ( -/obj/effect/spawner/structure/window/hollow/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/door/poddoor{ - id = "ancient"; - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/engi) -"Ii" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"Im" = ( -/obj/structure/closet/crate, -/obj/item/cautery{ - pixel_x = 4 - }, -/obj/item/hemostat, -/obj/item/circular_saw, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/retractor, -/obj/machinery/light/small/broken/directional/west{ - icon_state = "bulb-broken" - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/blue, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/ancientstation/medbay) -"Ir" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 + dir = 4; + id = "proto" }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/kitchen) +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) "It" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sink{ @@ -7368,19 +7387,6 @@ }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation) -"IH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) "IM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -7401,20 +7407,6 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"Jd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/rnd) -"Ji" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) "Jo" = ( /obj/effect/turf_decal/industrial/warning{ dir = 9 @@ -7429,48 +7421,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) -"JI" = ( -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, +"Jq" = ( +/obj/machinery/light/small/directional/east, /obj/structure/alien/weeds, -/obj/effect/gibspawner/human, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/ancientstation/deltaai) -"JT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"JW" = ( -/obj/machinery/light/directional/east, -/obj/structure/table/reinforced, -/obj/item/paper/fluff/ruins/oldstation/protogun, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) -"Ko" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ +"Js" = ( +/obj/machinery/door/airlock/science{ dir = 4 }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"Ku" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/particle_accelerator/control_box, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"KD" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ dir = 4 @@ -7478,30 +7438,22 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"KL" = ( -/obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/betacorridor) -"KQ" = ( +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"JE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/rnd) +"JG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden, /obj/machinery/door/airlock/command{ - name = "Beta Station Access" - }, -/obj/machinery/door/poddoor{ - id = "ancient"; - dir = 4 + dir = 4; + name = "Charlie Station Access"; + req_access_txt = "200" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, @@ -7509,40 +7461,71 @@ dir = 4 }, /turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"JK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/backpack/old, +/obj/structure/closet, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"JT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"JZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"Km" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betastorage) +"Ko" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/structure/table, +/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"Kq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) -"Lg" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4 - }, +"Ku" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/particle_accelerator/control_box, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"KE" = ( +/obj/structure/window/reinforced{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/door/poddoor{ + dir = 4; + id = "proto" }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation) +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) +"Le" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) "Lh" = ( /obj/structure/window/reinforced, /turf/open/floor/engine/o2, /area/ruin/space/has_grav/ancientstation/atmo) -"Li" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/structure/cable, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/engi) "Ll" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/particle_accelerator/particle_emitter/right, @@ -7560,42 +7543,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) -"LF" = ( +"Lq" = ( +/obj/machinery/light/directional/west, +/obj/structure/table/reinforced, +/obj/item/paper/fluff/ruins/oldstation/protosuit, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) +"Ls" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, /obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/east, -/mob/living/simple_animal/hostile/alien/drone, +/obj/effect/decal/cleanable/blood/old, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"LI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/sec) -"LS" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/bottle/iodine{ - pixel_y = 8 - }, -/obj/item/reagent_containers/glass/bottle/iron{ - pixel_x = 6 - }, -/obj/item/reagent_containers/glass/bottle/lithium{ - pixel_x = -6 - }, +"LR" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, +/obj/machinery/light/directional/east, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/rnd) +/area/ruin/space/has_grav/ancientstation/deltacorridor) "LY" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 8; @@ -7603,73 +7568,60 @@ }, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/ancientstation/atmo) -"Ma" = ( -/obj/machinery/door/window/westleft, -/obj/machinery/door/poddoor{ - id = "proto"; - dir = 4 +"Mh" = ( +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engineering" }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) -"Mg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/betacorridor) -"Mo" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/shreds, -/obj/structure/alien/weeds/node, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/ancientstation/deltaai) -"Mr" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command{ - name = "Delta Station Access"; +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, /obj/machinery/door/poddoor{ - id = "ancient"; - dir = 4 + dir = 8; + id = "ancient" }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/engi) +"Mq" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/power/apc{ + dir = 1; + name = "Charlie Station Kitchen APC"; + pixel_y = 25; + start_charge = 0 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/light/small/directional/north, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/white{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/corner/opaque/white{ + dir = 2 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) +/area/ruin/space/has_grav/ancientstation/kitchen) "Mt" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/atmo) -"ME" = ( +"Mw" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants{ - icon_state = "plant-25" - }, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 8 +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1; + icon_state = "tracks" }, -/obj/machinery/firealarm/directional/west, +/obj/machinery/firealarm/directional/east, +/mob/living/simple_animal/hostile/alien, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/hydroponics) +/area/ruin/space/has_grav/ancientstation/deltacorridor) "MG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -7683,102 +7635,55 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/kitchen) -"MP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/storage/box/firingpins, -/obj/structure/closet/crate/secure/weapon{ - req_access_txt = "203" - }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"MQ" = ( -/obj/machinery/door/airlock/science{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +"MK" = ( +/obj/machinery/door/airlock/maintenance_hatch{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"MR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/maintenance_hatch{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/door/firedoor/border_only{ - dir = 4 + dir = 8 }, /obj/machinery/door/firedoor/border_only{ - dir = 8 + dir = 4 }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/ancientstation/betastorage) -"MT" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/ancientstation/betastorage) -"MV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) -"Na" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/alien/weeds, -/obj/effect/decal/cleanable/blood/tracks, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/ancientstation/deltaai) -"Nf" = ( +"No" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/corner/opaque/green{ +/obj/effect/decal/cleanable/xenoblood/xgibs/up, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"Nx" = ( +/obj/effect/turf_decal/corner/opaque/blue{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/green{ +/obj/effect/turf_decal/corner/opaque/blue{ dir = 8 }, -/obj/item/reagent_containers/spray/weedspray, -/obj/item/reagent_containers/spray/pestspray, -/obj/structure/closet/crate/hydroponics, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/hydroponics) -"Nz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"ND" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/ancientstation/medbay) +"Ny" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/south, +/obj/machinery/light/directional/west, /obj/effect/decal/cleanable/dirt, -/obj/item/storage/backpack/old, -/obj/structure/closet, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"NF" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/ancientstation/deltaai) "NQ" = ( /obj/structure/window/reinforced{ dir = 8 @@ -7791,28 +7696,44 @@ internal_pressure_bound = 5066; name = "Nitrogen Out" }, -/turf/open/floor/engine/o2, -/area/ruin/space/has_grav/ancientstation/atmo) -"Om" = ( +/turf/open/floor/engine/o2, +/area/ruin/space/has_grav/ancientstation/atmo) +"NZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/corner/opaque/purple, +/obj/effect/turf_decal/corner/opaque/purple{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/rnd) +"Oi" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"Ok" = ( /obj/machinery/door/window/eastright, /obj/machinery/door/poddoor{ - id = "proto"; - dir = 4 + dir = 4; + id = "proto" }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) -"Ov" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 8 - }, -/obj/structure/closet/crate/bin, -/obj/machinery/airalarm/directional/south, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/hydroponics) +"Oo" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/shreds, +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/ancientstation/deltaai) "OA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7823,34 +7744,35 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/rnd) +"OB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/red, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/sec) "OC" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation) -"OE" = ( +"OD" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/airalarm/directional/east, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Hydroponics" }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/comm) -"OF" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/kitchen) +/area/ruin/space/has_grav/ancientstation/hydroponics) "OU" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, @@ -7862,49 +7784,53 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/sec) -"OW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/corner/opaque/green, -/obj/machinery/light_switch{ - pixel_x = 0; - pixel_y = -26 +"OY" = ( +/obj/machinery/door/airlock/command{ + name = "Beta Station Access" }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/hydroponics) -"Pg" = ( -/obj/machinery/door/airlock/security{ - dir = 4 +/obj/machinery/door/poddoor{ + dir = 4; + id = "ancient" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/door/poddoor{ - id = "ancient"; - dir = 8 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/sec) -"Pk" = ( -/obj/machinery/door/airlock/maintenance_hatch{ +/area/ruin/space/has_grav/ancientstation) +"Pe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"Pj" = ( +/obj/machinery/door/airlock/science{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, +/obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation) +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) "Pn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/corner/opaque/red{ @@ -7925,6 +7851,30 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) +"Pr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/command{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/betacorridor) "Px" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -7932,13 +7882,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"Py" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation) "PC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -7947,25 +7890,6 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/comm) -"PQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/betacorridor) -"PR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/alien/drone, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) "PV" = ( /obj/item/kirbyplants{ icon_state = "plant-25" @@ -7977,56 +7901,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) -"Qc" = ( -/obj/machinery/door/airlock/command{ - name = "Beta Station Access" - }, -/obj/machinery/door/poddoor{ - id = "ancient"; - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"Qd" = ( +"Qo" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/corner/opaque/purple, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 8 +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/rnd) -"Qi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/rnd) -"Qk" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/mining_scanner, -/obj/item/mining_scanner, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/corner/opaque/yellow{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/west, +/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/mining) +/area/ruin/space/has_grav/ancientstation/rnd) "Qp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/window/westright, @@ -8035,140 +7923,148 @@ }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation) -"Qz" = ( -/obj/machinery/light/directional/east, -/obj/structure/table/reinforced, -/obj/item/paper/fluff/ruins/oldstation/protosing, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) -"QC" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"QH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/west, +"Qr" = ( +/obj/machinery/door/airlock/command{ + name = "Beta Station Access" + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "ancient" + }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"QM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, +/area/ruin/space/has_grav/ancientstation) +"Qz" = ( /obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/mining) -"QQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/hydroponics) -"QT" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/ancientstation/deltaai) +"QA" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"QQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"QV" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 }, /turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/hydroponics) +"QY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) -"Ra" = ( -/obj/machinery/light/small/directional/west{ - brightness = 3 +"Rc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/west, +/obj/machinery/light_switch{ + pixel_x = 0; + pixel_y = 26 }, -/obj/structure/alien/weeds, -/mob/living/simple_animal/hostile/alien, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/ancientstation/deltaai) +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) "Re" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"Ri" = ( +"Rf" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command{ - name = "Delta Station Access"; - dir = 4 - }, -/obj/machinery/door/poddoor{ - id = "ancient"; - dir = 4 - }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/rnd) +"Rn" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ +/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/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"Rn" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Station Atmospherics"; - dir = 4 +/area/ruin/space/has_grav/ancientstation/sec) +"Ru" = ( +/obj/machinery/light/directional/east, +/obj/structure/table/reinforced, +/obj/item/paper/fluff/ruins/oldstation/protogun, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) +"RG" = ( +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Backup Generator Room" + }, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/atmo) -"Rx" = ( +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/engi) +"RH" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 1 +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 }, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) +"RP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/comm) -"RL" = ( +"RU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/east, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"RO" = ( +"RZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"RP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/comm) +/area/ruin/space/has_grav/ancientstation/atmo) "Se" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -8184,16 +8080,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"Sh" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) "Sn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -8202,16 +8088,37 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) -"Sp" = ( -/obj/structure/window/reinforced{ +"Sr" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/door/poddoor{ - id = "proto"; +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation) +"St" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants{ + icon_state = "plant-25" + }, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/green, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/hydroponics) "Su" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light_switch{ @@ -8226,6 +8133,23 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/kitchen) +"Sv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"SA" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/light/small/directional/west{ + brightness = 3 + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/ancientstation/deltaai) "SP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/mirror{ @@ -8245,45 +8169,78 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) +"SW" = ( +/obj/effect/spawner/structure/window/hollow/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor{ + dir = 8; + id = "ancient" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/sec) +"Tb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + dir = 8; + name = "Engineering External Access" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/engi) "Td" = ( /obj/item/stack/rods, /obj/structure/lattice, /turf/template_noop, /area/space/nearstation) -"Tg" = ( -/obj/machinery/door/poddoor{ - id = "proto"; - dir = 4 - }, -/obj/machinery/door/window/westright, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) "Tk" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end{ dir = 1 }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/atmo) -"Ts" = ( +"Tz" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command{ - name = "Charlie Station Access"; - req_access_txt = "200"; - dir = 4 +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"TF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) "TL" = ( @@ -8293,32 +8250,67 @@ dir = 4; name = "Broken Computer" }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/atmo) +"TU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/food/egg_smudge, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/kitchen) +"TZ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + icon_state = "inje_map-2" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine/n2, +/area/ruin/space/has_grav/ancientstation/atmo) +"Ua" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/obj/machinery/light_switch{ + pixel_x = 0; + pixel_y = 26 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) +"Ug" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/atmo) -"TW" = ( -/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/industrial/warning{ + dir = 6 }, -/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"TZ" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Medical Bay"; +/area/ruin/space/has_grav/ancientstation/atmo) +"Ut" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/door/airlock/maintenance_hatch{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 8 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -8328,19 +8320,30 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/medbay) -"Ug" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/ancientstation/betastorage) +"Uw" = ( +/obj/machinery/light/small/directional/west{ + brightness = 3 + }, +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/ancientstation/deltaai) +"UB" = ( +/obj/machinery/door/airlock/command{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 6 +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/atmo) -"UL" = ( +/area/ruin/space/has_grav/ancientstation/betacorridor) +"UC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair{ dir = 1 @@ -8355,28 +8358,20 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/comm) -"UM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"UP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/north, -/obj/effect/decal/cleanable/food/egg_smudge, -/obj/structure/cable{ - icon_state = "4-8" +"UJ" = ( +/obj/machinery/door/airlock/atmos/glass{ + dir = 4; + name = "Station Atmospherics" }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/kitchen) +/area/ruin/space/has_grav/ancientstation/atmo) "UV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -8392,98 +8387,110 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) -"Vd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/backpack/old, -/obj/structure/closet, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) "Ve" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) +"Vj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation) +"Vr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betastorage) "VH" = ( /obj/structure/sign/poster/retro/nanotrasen_logo_80s, /turf/closed/wall, /area/ruin/space/has_grav/ancientstation/comm) -"VI" = ( +"VW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/rnd) +"Wb" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/airalarm/directional/east, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/public/glass{ - name = "Hydroponics"; - dir = 4 - }, /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, -/area/ruin/space/has_grav/ancientstation/hydroponics) -"Wc" = ( +/area/ruin/space/has_grav/ancientstation) +"Wi" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/purple, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 8 +/obj/machinery/light/small/directional/west{ + brightness = 3 }, /turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/rnd) -"Wm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/structure/cable{ - icon_state = "1-2" +/area/ruin/space/has_grav/ancientstation) +"Wp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2 Output" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) -"Wn" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +"Wu" = ( +/obj/structure/closet, +/obj/item/tank/jetpack/void, +/obj/item/clothing/head/helmet/space/nasavoid/old, +/obj/item/clothing/suit/space/nasavoid, +/obj/effect/turf_decal/corner/opaque/brown{ dir = 8 }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/mining) +"WF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/atmo) -"Wp" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "N2 Output" +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/storage/box/firingpins, +/obj/structure/closet/crate/secure/weapon{ + req_access_txt = "203" }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/atmo) -"WG" = ( +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"WP" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/corner/opaque/blue, +/obj/effect/turf_decal/corner/opaque/blue{ dir = 4 }, -/obj/structure/closet/crate/bin, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/sec) -"WP" = ( +/area/ruin/space/has_grav/ancientstation/comm) +"WQ" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/command{ + dir = 4; + name = "Delta Station Access" + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "ancient" + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/west, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) +/area/ruin/space/has_grav/ancientstation) "WT" = ( /obj/structure/window/reinforced{ dir = 8 @@ -8501,52 +8508,28 @@ }, /turf/open/floor/engine/n2, /area/ruin/space/has_grav/ancientstation/atmo) -"WY" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/ancientstation/deltaai) -"WZ" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"Xc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - dir = 1; - name = "Charlie Station Kitchen APC"; - pixel_y = 25; - start_charge = 0 - }, -/obj/machinery/light/small/directional/north, -/obj/structure/cable{ - icon_state = "0-8" +"Xb" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/mining_scanner, +/obj/item/mining_scanner, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/corner/opaque/brown{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/kitchen) -"Xg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) +/area/ruin/space/has_grav/ancientstation/mining) +"Xd" = ( +/obj/machinery/light/directional/east, +/obj/structure/table/reinforced, +/obj/item/paper/fluff/ruins/oldstation/protosing, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) "Xh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8559,53 +8542,59 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/rnd) "Xo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_x = 26 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/engi) +/obj/machinery/light/directional/west, +/obj/structure/table/reinforced, +/obj/item/paper/fluff/ruins/oldstation/protohealth, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) "Xr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/hydroponics) -"Xz" = ( +"XJ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/engi) +"XK" = ( +/obj/machinery/door/airlock/science{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 1; - icon_state = "tracks" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/machinery/firealarm/directional/east, -/mob/living/simple_animal/hostile/alien, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"XE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/rnd) -"XF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/west, +"XO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/shard{ + icon_state = "small" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/broken/directional/west{ + icon_state = "tube-broken" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, -/area/ruin/space/has_grav/ancientstation/betastorage) -"XJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/engi) -"Ya" = ( +/area/ruin/space/has_grav/ancientstation/betacorridor) +"XY" = ( /obj/machinery/door/airlock/science{ dir = 8 }, @@ -8637,6 +8626,34 @@ /obj/item/soap/nanotrasen, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation) +"Yn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/proto) +"Yo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/command{ + dir = 4; + name = "Charlie Station Access"; + req_access_txt = "200" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/deltacorridor) "Yr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8652,60 +8669,72 @@ }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"YB" = ( +"YF" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/barricade/wooden, -/obj/machinery/door/airlock/command{ - name = "Charlie Station Access"; - req_access_txt = "200"; - dir = 4 - }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/betacorridor) +"YJ" = ( +/obj/machinery/door/airlock/highsecurity, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/xenoblood/xtracks, +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ - dir = 4 + dir = 1 }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"YH" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/alien/weeds/node, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltaai) "YN" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/rnd) -"YR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/north, +/area/ruin/space/has_grav/ancientstation/atmo) +"YT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/airalarm/directional/south, /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/deltacorridor) -"Zd" = ( -/obj/structure/window/reinforced{ - dir = 4 +/area/ruin/space/has_grav/ancientstation/betacorridor) +"YU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair{ + dir = 8 }, -/obj/machinery/door/poddoor{ - id = "proto"; - dir = 4 +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/ancientstation/proto) +/obj/effect/turf_decal/corner/opaque/white{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/kitchen) "Ze" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/engine/n2, @@ -8717,78 +8746,51 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/atmo) -"Zm" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Chemical Storage"; - req_access_txt = "200"; - dir = 4 +"Zj" = ( +/obj/item/kirbyplants{ + icon_state = "plant-25" }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small/broken/directional/west{ + icon_state = "bulb-broken" }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/rnd) -"Zs" = ( -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/corner/opaque/blue{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - icon_state = "inje_map-2" - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/engine/o2, -/area/ruin/space/has_grav/ancientstation/atmo) -"ZO" = ( -/obj/effect/spawner/structure/window/hollow/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/corner/opaque/blue{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-8" +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/ancientstation/medbay) +"Zp" = ( +/obj/machinery/light/small/broken/directional/north{ + icon_state = "bulb-broken" }, -/obj/machinery/door/poddoor{ - id = "ancient"; - dir = 8 +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/atmo) +"Zv" = ( +/obj/machinery/door/airlock/science{ + dir = 4; + pixel_y = 0 }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/sec) -"ZV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/west, -/obj/machinery/light_switch{ - pixel_x = 0; - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation) -"ZY" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, -/area/ruin/space/has_grav/ancientstation/rnd) +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"ZH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/ancientstation/betacorridor) (1,1,1) = {" aa @@ -8906,11 +8908,11 @@ ee et ee gi -EH -xL +Zj +Nx mq mF -Im +yE gu gK aa @@ -8925,8 +8927,8 @@ nt kK Ln ny -ra -Dn +RZ +YN nB nK EV @@ -8971,7 +8973,7 @@ lh nk nm pP -Wm +Cf qe Ab nA @@ -9001,7 +9003,7 @@ de dx ec eg -GJ +xS eT gu hm @@ -9018,8 +9020,8 @@ gK lh lh nk -Rn -Ae +UJ +Al mH mH kX @@ -9055,7 +9057,7 @@ gt gi jU mg -TZ +yC mg gu mW @@ -9067,7 +9069,7 @@ qy qD qD kQ -Bl +Zp pR gf mH @@ -9111,7 +9113,7 @@ nq nG ox oY -yZ +XO qA qE qH @@ -9120,11 +9122,11 @@ oM pS pf kQ -Zs +AE NQ zm WT -Ax +TZ kQ cD lh @@ -9150,8 +9152,8 @@ de ec eT gx -Mg -PQ +YF +vK eT eT mM @@ -9162,7 +9164,7 @@ oA pq ee qB -ud +uB qJ oz pd @@ -9197,8 +9199,8 @@ az fU fU ec -AP -tg +UB +Pr ec jC jQ @@ -9206,7 +9208,7 @@ jQ jQ jQ jQ -MR +Ut jC jC qx @@ -9220,7 +9222,7 @@ kQ kQ Bs Lh -Wn +sH pv Ze mH @@ -9254,7 +9256,7 @@ jR md mS mX -XF +Vr or oB qv @@ -9349,12 +9351,12 @@ hd eg jJ lz -MT +re mT mf nD -MT -HV +re +Km jQ dF dF @@ -9393,7 +9395,7 @@ dF aa gK eg -EB +ZH hd eg jC @@ -9442,7 +9444,7 @@ dF aa gK eg -KL +GE hn eg gK @@ -9634,8 +9636,8 @@ aa gK bI cf -Qk -Bo +Xb +Wu fA ce eW @@ -9831,7 +9833,7 @@ aM cc cy cI -QM +CG ga dj eT @@ -9933,7 +9935,7 @@ fy gg ce eT -Bi +YT eg gK aa @@ -9941,7 +9943,7 @@ aa aa gK fB -Gs +Tb fB gK aa @@ -10079,7 +10081,7 @@ aa aa gK eg -EB +ZH hd ec gK @@ -10088,7 +10090,7 @@ eI eI fb fD -Gq +BV gV hk eI @@ -10134,13 +10136,13 @@ ec gK eI bv -QV +su id ji kg mr mZ -zq +sZ nO eI gK @@ -10244,7 +10246,7 @@ sy hv eI oS -Li +QY gH eI gK @@ -10330,13 +10332,13 @@ eg lJ ju en -Xo -vk +sO +tq el kH my nb -sa +xB nP oc ix @@ -10373,17 +10375,17 @@ aT aG aG aG -Qc -KQ +Qr +OY aG eI eI dl dl eI -tK -Ig -tK +Mh +Ap +Mh gX eI eI @@ -10391,7 +10393,7 @@ dl eI eI iX -xG +RG eI aG aT @@ -10425,9 +10427,9 @@ aG fm fc gp -to +sV jF -TW +si mt ij ne @@ -10436,8 +10438,8 @@ jF nd mt pu -TW -to +si +sV gp jF px @@ -10479,9 +10481,9 @@ UV UV eP is -Sh +uW oJ -Xg +wF is UV UV @@ -10525,15 +10527,15 @@ cn cQ ey dP -VI +OD dP cQ ey -Lg +MK gI gY hR -Da +yI hR gI gI @@ -10564,19 +10566,19 @@ as as bl aP -Rx +Bz aP -UL +UC ak ak dN fh cQ -ME +vd dQ dQ eQ -Nf +vr ey oO gI @@ -10584,15 +10586,15 @@ hr ht ht ht -vK +Ci gI oX dS aG aT -Vd +JK gZ -sk +yb kD mz aT @@ -10618,7 +10620,7 @@ ba bk bs by -Ji +rN cn cR do @@ -10636,15 +10638,15 @@ tn iI iY cn -xc +Kq aG -ZV +Rc bN bN bN pi pk -ND +Cu aG dw cD @@ -10678,7 +10680,7 @@ dp ey oO gI -OF +vh ht EP ly @@ -10723,7 +10725,7 @@ dp gE ep eR -OW +tN ey oO gY @@ -10821,11 +10823,11 @@ dp gE er mD -Ov +wJ cQ oQ gY -UP +TU hV pM ht @@ -10874,7 +10876,7 @@ iO ey oQ gY -Xc +Mq ht MG ht @@ -10912,7 +10914,7 @@ aQ bm bM VH -EY +JZ fQ cT dr @@ -10930,7 +10932,7 @@ tn iM ja cn -MV +tb aT ph bN @@ -10938,7 +10940,7 @@ bN bN bN bN -ND +Cu aG gK aa @@ -10956,7 +10958,7 @@ as as fP aR -OE +WP aR bn ak @@ -10964,11 +10966,11 @@ ak dS dS ey -De +St dR dQ mL -vP +zk ey oQ gY @@ -10976,7 +10978,7 @@ hy ly ly ly -Ir +YU gY oZ pV @@ -10984,7 +10986,7 @@ aG aT qU bN -zB +sz kF jP aG @@ -11015,15 +11017,15 @@ cq ey cQ dP -VI +OD dP cQ cQ -Pk +Sr gI gI hR -Da +yI hR gY gY @@ -11053,11 +11055,11 @@ aa gK gK aT -DO +Ko OC sC SP -Py +Wi dg cq cq @@ -11067,15 +11069,15 @@ dt dt dt iV -WZ +Oi oT -Ii +aS np mb mb ml Po -HZ +zD hN cq qb @@ -11111,19 +11113,19 @@ aG PV bN cV -zb +Wb bN -zF +Vj bN jc Sn ld cq nu -Ex +ur cq bN -QT +yL cV pa bW @@ -11158,23 +11160,23 @@ aT aT aT bX -Ri +WQ bX eJ eJ eJ dv fp -Pg -ZO -Pg +vj +SW +vj eJ eJ eJ eJ eJ hM -Mr +Gp bX aG aG @@ -11208,21 +11210,21 @@ az cK cK bN -Nz +uM eJ gL hp -rv +Rn hp js lm ha Pn -rB +zb hz -tL +Eh eJ -Nz +uM pa bN aG @@ -11409,11 +11411,11 @@ gK eJ ex eV -WG +Cg fO lv fO -LI +OB hX im eJ @@ -11755,7 +11757,7 @@ gK bD he lV -vb +QA bE gK dF @@ -11796,7 +11798,7 @@ gK bE Re cx -xP +se bE gK gK @@ -11810,7 +11812,7 @@ gK dF gK bD -Fn +LR pE lw bE @@ -11844,7 +11846,7 @@ aa gK bE ct -YB +JG cb bE bE @@ -11852,7 +11854,7 @@ bD bD bD bD -xk +As bE bE bE @@ -11860,7 +11862,7 @@ bE bE bE cb -Ts +Yo cb bD gK @@ -11895,19 +11897,19 @@ gK bE ft fE -RO -UM -WP +Sv +wP +Le hQ -QH +Ny jv ma Re -QH +Ny nH -FT -QC -RO +No +BB +Sv Re pE od @@ -11991,8 +11993,8 @@ ac gK gK bE -rE -FR +Zv +CR eY eY eY @@ -12007,8 +12009,8 @@ dy eY dy dy -wM -yM +XK +Pj jA jA jA @@ -12044,15 +12046,15 @@ Re ge eY di -FD -Jd +JE +wE dZ -Wc +DQ eb hf zG hY -vO +sg iD iP eY @@ -12060,9 +12062,9 @@ pI Re jA kd -ya +Lq jA -te +Xo kZ jA gK @@ -12079,11 +12081,11 @@ gK ac ad ae -YH +NF ae ae ae -Mo +Oo cM jD ac @@ -12108,11 +12110,11 @@ eY pJ lw jA -wx -Zd +wq +KE jA -Zd -Om +KE +Ok jA dF aa @@ -12139,7 +12141,7 @@ ac df bE Re -IH +yp eY gW fa @@ -12154,12 +12156,12 @@ mk ls mn dy -YR +TF Re jA -Cu +Ua kv -rd +RH kv kv jA @@ -12210,7 +12212,7 @@ qf lF kw lF -Cz +Yn jA dF aa @@ -12226,14 +12228,14 @@ gK ac ae aj -Gp +Jq be ah bG -Na +Qz cO dI -uD +YJ dm dW fL @@ -12296,7 +12298,7 @@ jL oh mR hi -YN +yg ir lT hi @@ -12324,11 +12326,11 @@ gK ac af ah -vw +BQ bg ae ag -JI +uN ao bh ac @@ -12346,18 +12348,18 @@ eB eY eY eY -Zm +uX dy dy dy ST Re jA -FJ +CX lF lF kw -Cz +Yn jA dF aa @@ -12384,7 +12386,7 @@ ac gK bE oq -PR +DY dy dZ fu @@ -12396,13 +12398,13 @@ dy hF lM OA -ZY +Qo iQ eY -DX -xt +rH +GX jA -wJ +wh lG qV kx @@ -12451,11 +12453,11 @@ dy IV Re jA -Tg -Sp +yq +HI jA -Sp -Ma +HI +yY jA dF aa @@ -12485,15 +12487,15 @@ Re dc dy eD -Qi -XE +Rf +VW dZ -Qd +NZ eb dy hH hZ -LS +CM iG iS dy @@ -12501,9 +12503,9 @@ Yr Re jA kl -Qz +Xd jA -JW +Ru lc jA gK @@ -12530,8 +12532,8 @@ ag ac gK bE -Ya -MQ +XY +DM dy eY dy @@ -12546,8 +12548,8 @@ dy dy dy eY -wX -yA +ED +Js jA jA jA @@ -12569,11 +12571,11 @@ gK ac ah ae -Gp +Jq bh ae ag -EI +sD ae bg ac @@ -12630,19 +12632,19 @@ gK bE ou Re -EN -wd -LF +Tz +Dn +CU ib -AQ +Ls DB oN lw -RL +RU nL Se -zz -Xz +Pe +Mw nY Yh od @@ -12667,17 +12669,17 @@ gK gK ac ap -WY +SA bV ae bQ -Ra +Uw dd ac gK bE bE -KD +uE bD bD bE @@ -12685,7 +12687,7 @@ bE bD bD bD -HL +wu bE bE bE @@ -12693,7 +12695,7 @@ bE bE bE bD -Ko +Gh bE bE gK @@ -12775,7 +12777,7 @@ dK gK bE he -wc +yD jf AF qO @@ -12791,7 +12793,7 @@ Ll Sf bE jg -MP +WF yx bE dF 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/spacegym.dmm b/_maps/RandomRuins/SpaceRuins/spacegym.dmm deleted file mode 100644 index 6d69992c7910..000000000000 --- a/_maps/RandomRuins/SpaceRuins/spacegym.dmm +++ /dev/null @@ -1,321 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"b" = ( -/obj/structure/chair/stool, -/mob/living/simple_animal/hostile/zombie{ - desc = "Hey buddy, I think you got the wrong door. Leather club is two blocks down."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Boss of this Gym"; - zombiejob = null - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"c" = ( -/mob/living/simple_animal/hostile/zombie/leatherman{ - a_intent = "Leatherman"; - environment_smash = 0; - zombiejob = null - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"d" = ( -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"e" = ( -/obj/item/clothing/under/costume/jabroni, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"f" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"h" = ( -/obj/machinery/door/airlock, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"k" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged1" - }, -/area/ruin/space/has_grav/spacegym) -"m" = ( -/obj/item/reagent_containers/food/snacks/meatball, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"n" = ( -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"o" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"r" = ( -/obj/machinery/door/airlock{ - dir = 4 - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"s" = ( -/obj/machinery/shower, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/storage/pill_bottle/floorpill/full, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"u" = ( -/turf/open/space, -/area/space) -"v" = ( -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged1" - }, -/area/ruin/space/has_grav/spacegym) -"y" = ( -/obj/structure/closet/boxinggloves, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"z" = ( -/obj/structure/closet/boxinggloves, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"B" = ( -/obj/structure/weightmachine/stacklifter, -/obj/effect/spawner/lootdrop/spacegym, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"E" = ( -/mob/living/simple_animal/hostile/zombie{ - desc = "He's the boy next door."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Boy Next Door"; - zombiejob = null - }, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"F" = ( -/obj/machinery/shower, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"G" = ( -/obj/effect/spawner/lootdrop/spacegym, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"I" = ( -/obj/structure/lattice, -/turf/open/space, -/area/ruin/space/has_grav/spacegym) -"J" = ( -/obj/structure/weightmachine/weightlifter, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"L" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/ruin/space/has_grav/spacegym) -"O" = ( -/turf/closed/wall, -/area/ruin/space/has_grav/spacegym) -"Q" = ( -/obj/structure/closet, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"R" = ( -/obj/item/mop, -/obj/structure/mopbucket, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"U" = ( -/obj/structure/grille, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"V" = ( -/obj/structure/chair/stool, -/obj/item/reagent_containers/glass/rag, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) -"X" = ( -/obj/effect/decal/cleanable/vomit, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/spacegym) - -(1,1,1) = {" -u -u -u -I -u -I -G -k -I -I -I -u -"} -(2,1,1) = {" -u -u -I -O -O -O -O -O -O -O -U -u -"} -(3,1,1) = {" -u -u -u -O -y -Q -Q -Q -X -B -O -U -"} -(4,1,1) = {" -u -n -u -O -b -a -a -a -o -m -O -k -"} -(5,1,1) = {" -u -U -I -O -n -G -k -n -c -U -h -u -"} -(6,1,1) = {" -u -I -I -U -V -a -a -a -n -k -O -u -"} -(7,1,1) = {" -u -f -I -O -z -Q -Q -Q -U -J -O -u -"} -(8,1,1) = {" -u -u -U -U -O -O -O -O -r -O -O -u -"} -(9,1,1) = {" -u -u -I -O -F -I -k -G -d -U -U -u -"} -(10,1,1) = {" -u -u -I -O -s -E -e -n -U -R -I -u -"} -(11,1,1) = {" -u -u -v -U -O -U -I -O -U -O -O -u -"} -(12,1,1) = {" -u -u -u -u -u -I -L -L -u -u -u -u -"} 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/configs/independent_rigger.json b/_maps/configs/independent_rigger.json index 8229cee469de..324cf75dd3ea 100644 --- a/_maps/configs/independent_rigger.json +++ b/_maps/configs/independent_rigger.json @@ -18,7 +18,7 @@ ], "map_path": "_maps/shuttles/independent/independent_rigger.dmm", "roundstart": true, - "limit": 2, + "limit": 1, "job_slots": { "Captain": { "outfit": "/datum/outfit/job/captain/western", diff --git a/_maps/configs/independent_shetland.json b/_maps/configs/independent_shetland.json index a1d88413bc18..3923bed47db5 100644 --- a/_maps/configs/independent_shetland.json +++ b/_maps/configs/independent_shetland.json @@ -22,11 +22,6 @@ "officer": true, "slots": 1 }, - "Lieutenant": { - "outfit": "/datum/outfit/job/lieutenant", - "officer": true, - "slots": 1 - }, "First Mate": { "outfit": "/datum/outfit/job/head_of_personnel", "officer": true, diff --git a/_maps/configs/nanotrasen_heron.json b/_maps/configs/nanotrasen_heron.json index 3cdc9821a859..fbe11a792000 100644 --- a/_maps/configs/nanotrasen_heron.json +++ b/_maps/configs/nanotrasen_heron.json @@ -4,7 +4,7 @@ "namelists": ["WEAPONS"], "map_name": "Heron-Class Dreadnaught", "map_short_name": "Heron-class", - "map_path": "_maps/shuttles/shiptest/nanotrasen_heron.dmm", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_heron.dmm", "map_id": "nanotrasen_heron", "description": "The Heron-Class is the biggest ship available to NanoTrasen's frontier forces. These vessels served as the flagship of many fleets during the war, serving as a carrier for an operative team, or a command vessel for corporate units. Captains of this vessel were known to retrofit bluespace artillery onto the hangar, and directly fire it during combat. Since the end of the war, it has been repurposed for peacekeeping missions on backline sectors. Though the age of the design is starting to show, it stands as one of the remnants of NanoTrasen's once powerful hold over the cosmos.", "limit": 1, 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/syndicate_aegis.json b/_maps/configs/syndicate_aegis.json index 50d7dea915e7..9dc307f7f091 100644 --- a/_maps/configs/syndicate_aegis.json +++ b/_maps/configs/syndicate_aegis.json @@ -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 8696db8e0359..fbde6dc608d6 100644 --- a/_maps/configs/syndicate_cybersun_kansatsu.json +++ b/_maps/configs/syndicate_cybersun_kansatsu.json @@ -15,26 +15,26 @@ "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 6e1fa6ae92ce..4e9086139275 100644 --- a/_maps/configs/syndicate_gorlex_hyena.json +++ b/_maps/configs/syndicate_gorlex_hyena.json @@ -18,25 +18,25 @@ "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 da4b9e58a795..5692eaf44a14 100644 --- a/_maps/configs/syndicate_gorlex_komodo.json +++ b/_maps/configs/syndicate_gorlex_komodo.json @@ -19,33 +19,33 @@ "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/independent_litieguai.json b/_maps/configs/syndicate_litieguai.json similarity index 73% rename from _maps/configs/independent_litieguai.json rename to _maps/configs/syndicate_litieguai.json index d189af20b550..887828e28176 100644 --- a/_maps/configs/independent_litieguai.json +++ b/_maps/configs/syndicate_litieguai.json @@ -1,12 +1,13 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Li Tieguai-class Rescue Ship", + "prefix": "SSV", "map_short_name": "Li Tieguai-class", "description": "A small, nimble, and exceptionally well-built medical response vessel, the Li Tieguai is a recent addition to Cybersun’s fleet, forming a critical component of their Frontier stabilization program. Li Tieguais come equipped with high-end medical equipment, including a selection of Cybersun augments and prosthetics, as well as weaponry and armor sufficient to protect its personnel in the often-dangerous Frontier sectors, so that they can offer premium healthcare (at premium prices) in even the most dangerous of scenarios.", "tags": [ "Medical" ], - "map_path": "_maps/shuttles/independent/independent_litieguai.dmm", + "map_path": "_maps/shuttles/syndicate/syndicate_litieguai.dmm", "namelists": [ "SPACE", "BEASTS", @@ -14,20 +15,20 @@ ], "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/captain", + "outfit": "/datum/outfit/job/syndicate/captain/cybersun", "slots": 1 }, - "Chief Medical Officer": { - "outfit": "/datum/outfit/job/cmo/medicaldirector", + "Medical Director": { + "outfit": "/datum/outfit/job/syndicate/cmo", "officer": true, "slots": 1 }, "Trauma Team Technician": { - "outfit": "/datum/outfit/job/paramedic/traumateam", + "outfit": "/datum/outfit/job/syndicate/doctor/cybersun", "slots": 3 }, - "Medical Intern": { - "outfit": "/datum/outfit/job/doctor/juniordoctor", + "Cybersun Medical Intern": { + "outfit": "/datum/outfit/job/syndicate/assistant/cybersun", "slots": 3 } }, diff --git a/_maps/configs/syndicate_lugol.json b/_maps/configs/syndicate_lugol.json index 268769618857..26599d93a8ee 100644 --- a/_maps/configs/syndicate_lugol.json +++ b/_maps/configs/syndicate_lugol.json @@ -17,28 +17,28 @@ "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 d34f20183fae..1433f2da547a 100644 --- a/_maps/configs/syndicate_luxembourg.json +++ b/_maps/configs/syndicate_luxembourg.json @@ -18,19 +18,19 @@ "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 2c7a57e1bd66..e5765b1691dd 100644 --- a/_maps/configs/syndicate_twinkleshine.json +++ b/_maps/configs/syndicate_twinkleshine.json @@ -18,37 +18,37 @@ "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/map_catalogue.txt b/_maps/map_catalogue.txt index e4f2881948b3..3d86570f326c 100644 --- a/_maps/map_catalogue.txt +++ b/_maps/map_catalogue.txt @@ -46,6 +46,10 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 85)(y = 47)(z = 1) Tags = "Minor Combat Challenge", "Shelter", "Medium loot", "Ghost Role" + File Name = _maps\RandomRuins\IceRuins\icemoon_crashed_holemaker.dmm + Size = (x = 47)(y = 37)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Shelter" + JungleRuins: @@ -69,10 +73,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" @@ -174,10 +174,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 30)(y = 20)(z = 1) Tags = "Medium Combat Challenge", "Medium Loot", "Shelter", "Antag Gear" - File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_golem_ship.dmm" - Size = (x = 30)(y = 18)(z = 1) - Tags = "No Combat", "Medium Loot", "Ghost Role", "Shelter" - File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_hermit.dmm" Size = (x = 16)(y = 16)(z = 1) Tags = "No Combat", "Minor Loot", "Ghost Role", "Shelter" @@ -246,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" @@ -290,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" @@ -316,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" @@ -344,6 +336,11 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 7)(y = 9)(z = 1) Tags = "No Combat", "Minor Loot", "Inhospitable" + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_pubbyslopcrash.dmm" + Size = (x = 35)(y = 25)(z = 1) + Tags = "Minor Combat Challange", "Medium Loot", "Shelter" + + SpaceRuins: File Name = "_maps\RandomRuins\SpaceRuins\.dmm" @@ -394,10 +391,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" @@ -406,18 +399,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" @@ -446,10 +431,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 60)(y = 60)(z = 1) Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable" - File Name = "_maps\RandomRuins\SpaceRuins\spacegym.dmm" - Size = (x = 12)(y = 12)(z = 1) - Tags = "Minor Combat Challenge", "Minor Loot", "Inhospitable" - File Name = "_maps\RandomRuins\SpaceRuins\transport18.dmm" Size = (x = 51)(y = 23)(z = 1) Tags = "No Combat", "Medium Loot", "Inhospitable" @@ -507,6 +488,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) @@ -565,7 +550,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_ice.dmm b/_maps/outpost/elevator_ice.dmm new file mode 100644 index 000000000000..e8256f71aabe --- /dev/null +++ b/_maps/outpost/elevator_ice.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/light/small/directional/east{ + pixel_y = 6 + }, +/turf/template_noop, +/area/template_noop) +"e" = ( +/obj/structure/elevator_platform, +/obj/machinery/light/small/directional/east{ + pixel_y = -6 + }, +/obj/machinery/elevator_floor_button{ + pixel_y = 10; + dir = 8; + pixel_x = 24 + }, +/turf/template_noop, +/area/template_noop) +"A" = ( +/obj/structure/elevator_platform, +/turf/template_noop, +/area/template_noop) +"S" = ( +/obj/structure/elevator_platform, +/obj/machinery/status_display/elevator{ + pixel_x = 32 + }, +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +A +A +A +"} +(2,1,1) = {" +A +A +A +"} +(3,1,1) = {" +a +S +e +"} 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/nt_ice_20x20.dmm b/_maps/outpost/hangar/nt_ice_20x20.dmm new file mode 100644 index 000000000000..ec7577ab620f --- /dev/null +++ b/_maps/outpost/hangar/nt_ice_20x20.dmm @@ -0,0 +1,3389 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ac" = ( +/turf/closed/indestructible/rock/schist, +/area/hangar) +"ad" = ( +/obj/machinery/light/floor, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"al" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"am" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"ao" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/door/poddoor/ert, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"ap" = ( +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"av" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ay" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"az" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aB" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aC" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aJ" = ( +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aL" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"aM" = ( +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/hangar) +"aN" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aO" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aP" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aT" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aY" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"aZ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"bA" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"bI" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"cf" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"cB" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"cD" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"cI" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"dM" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"fb" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"gy" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"hg" = ( +/turf/open/floor/plasteel/tech, +/area/hangar) +"hv" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"hw" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/hangar) +"hG" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"ic" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"im" = ( +/obj/structure/flora/grass/both, +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"me" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"mR" = ( +/obj/machinery/door/airlock/outpost, +/turf/open/floor/plasteel/tech, +/area/hangar) +"nr" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"nK" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"oi" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"oE" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"pr" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/obj/machinery/elevator_call_button{ + dir = 8; + pixel_x = 25; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"rj" = ( +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"rQ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"rY" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"sV" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/small/directional/east{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/newscaster/security_unit/directional/east{ + pixel_y = -6 + }, +/turf/open/floor/plasteel/dark, +/area/hangar) +"ui" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"uC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"xB" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"xI" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"yB" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Aj" = ( +/obj/effect/turf_decal/borderfloor/corner, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Dh" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"ES" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Fi" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"FM" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"FS" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"GH" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"GK" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"GX" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Iz" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"IA" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"IG" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"JU" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"Ku" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"KC" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Lo" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"MI" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"MK" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"MN" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"MR" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"NO" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"PB" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Qb" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Qu" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"SW" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Te" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"TA" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"TF" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"TQ" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"TR" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"Ul" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"UV" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/obj/effect/landmark/outpost/elevator{ + shaft = "1" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Vk" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ww" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Xd" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"XC" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"YN" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"YU" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ze" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Zi" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/door/airlock{ + dir = 8 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) + +(1,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(2,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(3,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +rj +rj +rj +rj +rj +ac +ac +ac +aM +rj +rj +rj +rj +rj +ac +ac +ac +ac +ac +ac +aM +aM +aM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(4,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +MI +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +ac +ac +TA +rj +rj +rj +rj +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(5,1,1) = {" +ac +ac +ac +ac +ac +ac +rj +rj +rj +rj +rj +MI +rj +rj +rj +rj +rj +rj +rj +rj +MI +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +ac +ac +ac +ac +ac +"} +(6,1,1) = {" +ac +ac +ac +ac +ac +rj +rj +rj +rj +MN +rj +rj +rj +MI +rj +rj +rj +MI +rj +rj +rj +rj +rj +rj +rj +rj +MN +rj +rj +rj +rj +rj +rj +rj +rj +ac +ac +ac +ac +ac +"} +(7,1,1) = {" +ac +ac +ac +ac +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +MN +rj +rj +rj +MI +rj +rj +TA +rj +MI +rj +MI +rj +rj +rj +GX +rj +rj +ac +ac +ac +ac +"} +(8,1,1) = {" +ac +ac +ac +rj +rj +rj +GX +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +TA +rj +aM +ac +ac +ac +"} +(9,1,1) = {" +ac +ac +ac +rj +MI +rj +rj +rj +rj +rj +rj +MI +rj +rj +MN +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +MI +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +ac +ac +ac +"} +(10,1,1) = {" +ac +ac +aM +rj +rj +rj +rj +MN +rj +rj +rj +rj +rj +TA +rj +rj +rj +rj +rj +rj +rj +MI +rj +MN +rj +rj +rj +rj +Qu +rj +rj +MI +rj +rj +rj +GX +rj +aM +ac +ac +"} +(11,1,1) = {" +ac +ac +aM +rj +rj +GX +rj +Qu +rj +rj +rj +rj +MN +rj +rj +rj +MI +rj +rj +rj +rj +rj +rj +rj +rj +MI +rj +rj +rj +MI +rj +rj +rj +rj +MI +rj +rj +aM +ac +ac +"} +(12,1,1) = {" +ac +ac +ac +rj +rj +rj +rj +rj +rj +MI +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +MI +rj +ac +ac +ac +"} +(13,1,1) = {" +ac +ac +ac +rj +MI +rj +rj +Aj +bA +yB +GK +GK +MK +MK +MK +GK +GK +GK +GK +GK +GK +GK +Lo +GK +GK +GK +GK +MK +MK +GK +YN +Xd +FM +rj +rj +rj +rj +ac +ac +ac +"} +(14,1,1) = {" +ac +ac +ac +rj +rj +rj +rj +MR +hv +ap +xB +xB +xB +gy +gy +gy +gy +gy +aN +gy +xB +xB +xB +xB +xB +gy +gy +gy +gy +gy +cB +oi +nK +rj +rj +GX +rj +ac +ac +ac +"} +(15,1,1) = {" +ac +ac +ac +ac +ac +rj +rj +aC +rQ +av +aJ +aJ +ad +aJ +aJ +aJ +aJ +ad +aJ +aJ +aJ +aJ +ad +aJ +aJ +aJ +aJ +ad +aJ +aB +nr +rQ +nK +rj +rj +MN +TA +am +am +am +"} +(16,1,1) = {" +ac +ac +ac +ac +aM +MN +rj +aC +rQ +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +ap +nK +rj +rj +GX +rj +am +hg +am +"} +(17,1,1) = {" +am +am +am +am +rj +rj +MI +Fi +ap +av +ad +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ad +nr +rQ +nK +rj +rj +rj +rj +mR +hg +am +"} +(18,1,1) = {" +am +hg +hg +am +rj +GX +rj +nr +ap +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +rQ +aT +MI +rj +rj +rj +am +am +am +"} +(19,1,1) = {" +am +hg +hg +am +rj +rj +rj +Fi +rQ +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aO +rQ +nK +rj +rj +MI +ac +ac +ac +ac +"} +(20,1,1) = {" +am +hg +hg +mR +rj +rj +GX +aC +NO +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +rQ +nK +rj +GX +rj +ac +ac +ac +ac +"} +(21,1,1) = {" +am +hg +hg +am +MI +rj +rj +aC +IG +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +NO +nK +rj +rj +ac +ac +ac +ac +ac +"} +(22,1,1) = {" +am +am +am +am +rj +MN +rj +aC +cI +av +ad +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ad +nr +NO +nK +MI +rj +aM +ac +ac +ac +ac +"} +(23,1,1) = {" +ac +ac +ac +ac +rj +GX +MN +aC +NO +aT +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +NO +nK +rj +GX +ac +ac +ac +ac +ac +"} +(24,1,1) = {" +ac +ac +ac +ac +rj +rj +rj +aC +NO +aT +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +NO +uC +rj +rj +ac +ac +ac +ac +ac +"} +(25,1,1) = {" +ac +ac +ac +TA +rj +MI +rj +Fi +rQ +aT +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +rQ +TF +rj +MI +ac +ac +ac +ac +ac +"} +(26,1,1) = {" +ac +ac +ac +rj +rj +rj +MI +aC +rQ +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +NO +TF +rj +ac +ac +ac +ac +ac +ac +"} +(27,1,1) = {" +ac +ac +ac +rj +rj +rj +rj +aC +rQ +av +ad +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ad +aO +ap +nK +MN +ac +ac +ac +ac +ac +ac +"} +(28,1,1) = {" +ac +ac +aM +rj +rj +rj +GX +aC +ap +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aO +rQ +nK +rj +ac +ac +ac +ac +ac +ac +"} +(29,1,1) = {" +ac +ac +aM +rj +MI +rj +rj +aC +ap +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aO +rQ +nK +MI +rj +ac +ac +ac +ac +ac +"} +(30,1,1) = {" +ac +ac +aM +rj +rj +rj +rj +aC +ap +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +rQ +nK +GX +rj +aM +ac +ac +ac +ac +"} +(31,1,1) = {" +ac +ac +ac +rj +rj +MI +rj +aC +ap +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +NO +nK +rj +rj +aM +ac +ac +ac +ac +"} +(32,1,1) = {" +ac +ac +ac +rj +rj +GX +rj +aC +rQ +aT +ad +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ad +nr +NO +nK +rj +MI +ac +ac +ac +ac +ac +"} +(33,1,1) = {" +ac +ac +ac +rj +rj +MN +rj +Fi +rQ +aT +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +nr +rQ +nK +rj +GX +ac +ac +ac +ac +ac +"} +(34,1,1) = {" +ac +ac +ac +rj +rj +rj +GX +Fi +ap +aT +aJ +aJ +ad +aJ +aJ +aJ +aJ +ad +aJ +aJ +aJ +aJ +ad +aJ +aJ +aJ +aJ +ad +aJ +aJ +nr +ap +nK +rj +rj +ac +ac +ac +ac +ac +"} +(35,1,1) = {" +ac +ac +ac +MI +rj +rj +rj +aC +ap +SW +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +Qb +ES +ap +nK +MI +TA +ac +ac +ac +ac +ac +"} +(36,1,1) = {" +ac +ac +rj +rj +rj +MI +rj +aC +hv +ap +NO +rQ +rQ +rQ +ap +NO +NO +rQ +rQ +rQ +FS +ap +rQ +ap +ap +ap +NO +NO +rQ +ap +ap +FS +uC +rj +ac +ac +ac +ac +ac +ac +"} +(37,1,1) = {" +ac +ac +rj +rj +rj +GX +rj +Ww +aZ +aZ +aZ +Vk +aZ +aZ +aZ +aZ +aZ +Ul +Ul +ui +NO +GH +Vk +aZ +aZ +aZ +aZ +aZ +cD +Ul +Ul +Ul +YU +MN +ac +ac +ac +ac +ac +ac +"} +(38,1,1) = {" +ac +ac +ac +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +rj +MN +rj +rj +MI +aC +rQ +uC +rj +rj +rj +MI +rj +rj +rj +MN +rj +rj +rj +GX +rj +ac +ac +ac +ac +ac +"} +(39,1,1) = {" +ac +ac +ac +rj +rj +MI +rj +MN +rj +rj +rj +rj +GX +MI +rj +rj +rj +GX +rj +aC +rQ +aP +Te +MI +rj +rj +rj +MI +rj +GX +rj +rj +MI +rj +rj +ac +ac +ac +ac +ac +"} +(40,1,1) = {" +ac +ac +ac +rj +GX +rj +rj +Qu +rj +MI +rj +MN +rj +rj +rj +MI +rj +rj +rj +aC +NO +Ze +TQ +rj +rj +GX +rj +MI +rj +rj +rj +rj +rj +rj +rj +ac +ac +ac +ac +ac +"} +(41,1,1) = {" +ac +ac +ac +rj +rj +rj +rj +rj +GX +rj +rj +rj +rj +rj +Qu +rj +rj +MN +rj +oE +rQ +Iz +XC +rj +rj +MI +rj +rj +rj +MI +rj +MI +rj +rj +GX +ac +ac +ac +ac +ac +"} +(42,1,1) = {" +ac +ac +ac +aM +rj +rj +GX +MI +rj +rj +rj +GX +rj +rj +rj +rj +ac +am +am +am +TR +am +am +am +TA +rj +MI +rj +rj +rj +GX +rj +rj +rj +rj +ac +ac +ac +ac +ac +"} +(43,1,1) = {" +ac +ac +ac +ac +ac +ac +rj +rj +rj +MI +rj +rj +MI +rj +ac +aM +ac +am +hw +Ku +JU +bI +aL +am +ac +rj +rj +rj +rj +rj +rj +im +rj +ac +ac +ac +ac +ac +ac +ac +"} +(44,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +TA +rj +rj +MI +rj +rj +ac +ac +ac +ac +am +sV +ay +me +fb +pr +am +ac +ac +rj +MI +rj +MI +rj +rj +ac +ac +ac +ac +ac +ac +ac +ac +"} +(45,1,1) = {" +am +am +am +am +am +am +am +am +az +az +az +az +am +am +am +am +am +am +am +Zi +Zi +Zi +am +am +am +am +am +az +az +az +az +am +am +am +am +am +am +am +am +am +"} +(46,1,1) = {" +am +aY +aY +aY +ao +dM +Dh +Dh +al +al +cf +al +Dh +PB +al +aY +al +al +ao +xI +xI +UV +ao +dM +Dh +Dh +al +aY +al +al +cf +al +Dh +PB +al +ao +aY +al +Dh +am +"} +(47,1,1) = {" +am +aY +aY +aY +ao +aY +Dh +Dh +Dh +al +aY +KC +Dh +al +al +aY +ic +al +ao +xI +xI +xI +ao +aY +Dh +Dh +al +aY +ic +al +aY +KC +Dh +al +ic +ao +aY +aY +Dh +am +"} +(48,1,1) = {" +am +aY +aY +aY +ao +aY +dM +aY +hG +aY +aY +al +Dh +Dh +IA +aY +aY +aY +ao +xI +xI +xI +ao +rY +al +Dh +aY +aY +al +Dh +Dh +IA +Dh +Dh +aY +ao +aY +al +Dh +am +"} +(49,1,1) = {" +am +am +am +am +am +ac +ac +ac +am +ac +ac +ac +ac +ac +am +ac +ac +ac +am +am +am +am +am +ac +ac +ac +ac +ac +ac +ac +ac +am +ac +ac +ac +am +am +am +am +am +"} +(50,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(51,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(52,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(53,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(54,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(55,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} diff --git a/_maps/outpost/hangar/nt_ice_40x20.dmm b/_maps/outpost/hangar/nt_ice_40x20.dmm new file mode 100644 index 000000000000..a9066a1dcef2 --- /dev/null +++ b/_maps/outpost/hangar/nt_ice_40x20.dmm @@ -0,0 +1,4283 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"ae" = ( +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"af" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ai" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"al" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"am" = ( +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"an" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ap" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"as" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aw" = ( +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/hangar) +"aA" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aD" = ( +/obj/machinery/light/floor, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aF" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aG" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/door/poddoor/ert, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"aH" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"aL" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aM" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aO" = ( +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aR" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aT" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aU" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aY" = ( +/turf/closed/indestructible/rock/schist, +/area/hangar) +"bj" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"bk" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"bz" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"bL" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/door/airlock{ + dir = 8 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"dA" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"dF" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"dR" = ( +/obj/effect/turf_decal/borderfloor/corner, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"es" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"eK" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"eW" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"fE" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"fQ" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"hh" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"hX" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"io" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"iB" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"jv" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"kL" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"lb" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"lG" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"lO" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"lQ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"mj" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"oA" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"oC" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"oL" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"pv" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"qa" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"qh" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"qN" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"rk" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"rq" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"rr" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"rI" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"rU" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"sx" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"tB" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/obj/machinery/elevator_call_button{ + dir = 8; + pixel_x = 25; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"wH" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"wL" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"wR" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"xG" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"zT" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"AN" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Cg" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"DM" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ep" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/hangar) +"EJ" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Fx" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"FX" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"GS" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Iv" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Jb" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Js" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"JT" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"LS" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/small/directional/east{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/newscaster/security_unit/directional/east{ + pixel_y = -6 + }, +/turf/open/floor/plasteel/dark, +/area/hangar) +"Mf" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Mi" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"MM" = ( +/turf/open/floor/plasteel/tech, +/area/hangar) +"OP" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Qu" = ( +/obj/structure/flora/grass/both, +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"QX" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"RU" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Sh" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Sn" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"TX" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Uo" = ( +/obj/machinery/door/airlock/outpost, +/turf/open/floor/plasteel/tech, +/area/hangar) +"Vs" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Ww" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"WM" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Xz" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"XP" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/obj/effect/landmark/outpost/elevator{ + shaft = "1" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Zc" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ZK" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) + +(1,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(2,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(3,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aO +aO +aO +aO +aO +aY +aY +aY +aw +aO +aO +aO +aO +aO +aY +aY +aY +aY +aY +aY +aw +aw +aw +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(4,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +pv +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aY +aY +wR +aO +aO +aO +aO +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(5,1,1) = {" +aY +aY +aY +aY +aY +aY +aO +aO +aO +aO +aO +pv +aO +aO +aO +aO +aO +aO +aO +aO +pv +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aY +aY +aY +aY +aY +"} +(6,1,1) = {" +aY +aY +aY +aY +aY +aO +aO +aO +aO +as +aO +aO +aO +pv +aO +aO +aO +pv +aO +aO +aO +aO +aO +aO +aO +aO +as +aO +aO +aO +aO +aO +aO +aO +aO +aY +aY +aY +aY +aY +"} +(7,1,1) = {" +aY +aY +aY +aY +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +as +aO +aO +aO +pv +aO +aO +wR +aO +pv +aO +pv +aO +aO +aO +al +aO +aO +aY +aY +aY +aY +"} +(8,1,1) = {" +aY +aY +aY +aO +aO +aO +al +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 +wR +aO +aw +aY +aY +aY +"} +(9,1,1) = {" +aY +aY +aY +aO +pv +aO +aO +aO +aO +aO +aO +pv +aO +aO +as +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +pv +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aY +aY +aY +"} +(10,1,1) = {" +aY +aY +aw +aO +aO +aO +aO +as +aO +aO +aO +aO +aO +wR +aO +aO +aO +aO +aO +aO +aO +pv +aO +as +aO +aO +aO +aO +zT +aO +aO +pv +aO +aO +aO +al +aO +aw +aY +aY +"} +(11,1,1) = {" +aY +aY +aw +aO +aO +al +aO +zT +aO +aO +aO +aO +as +aO +aO +aO +pv +aO +aO +aO +aO +aO +aO +aO +aO +pv +aO +aO +aO +pv +aO +aO +aO +aO +pv +aO +aO +aw +aY +aY +"} +(12,1,1) = {" +aY +aY +aY +aO +aO +aO +aO +aO +aO +pv +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 +pv +aO +aY +aY +aY +"} +(13,1,1) = {" +aY +aY +aY +aO +pv +aO +aO +dR +qh +aT +JT +JT +hh +hh +hh +JT +JT +JT +JT +JT +JT +JT +EJ +JT +JT +JT +JT +hh +hh +JT +Jb +Sh +aF +aO +aO +aO +aO +aY +aY +aY +"} +(14,1,1) = {" +aY +aY +aY +aO +aO +aO +aO +lO +aU +am +an +an +an +iB +iB +iB +iB +iB +Mi +iB +an +an +an +an +an +iB +iB +iB +iB +iB +xG +eW +lQ +aO +aO +al +aO +aY +aY +aY +"} +(15,1,1) = {" +aY +aY +aY +aO +aO +al +aO +Ww +aR +ap +ae +ae +aD +ae +ae +ae +ae +aD +ae +ae +ae +ae +aD +ae +ae +ae +ae +aD +ae +hX +kL +aR +lQ +aO +as +aO +pv +aY +aY +aY +"} +(16,1,1) = {" +aY +aY +aY +aO +aO +aO +aO +aL +aR +aM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +OP +aO +aO +aO +aO +aw +aY +aY +"} +(17,1,1) = {" +aY +aY +aY +aY +aO +as +aO +aL +aR +dA +aD +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aD +rq +aR +OP +aO +aO +pv +aO +aY +aY +aY +"} +(18,1,1) = {" +aY +aY +aY +aY +pv +aO +aO +aL +aR +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +fQ +WM +OP +aO +al +aO +aO +aY +aY +aY +"} +(19,1,1) = {" +aY +aY +aY +aY +aO +aO +aO +aL +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +fQ +aR +lQ +aO +aO +aO +aO +aY +aY +aY +"} +(20,1,1) = {" +aY +aY +aY +aY +aY +aO +as +aL +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +am +OP +aO +aO +aO +aY +aY +aY +aY +"} +(21,1,1) = {" +aY +aY +aY +aY +aw +al +aO +aL +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +am +OP +aO +pv +aO +aY +aY +aY +aY +"} +(22,1,1) = {" +aY +aY +aY +aY +aY +aO +pv +aL +rI +DM +aD +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aD +rq +am +OP +aO +aO +aY +aY +aY +aY +aY +"} +(23,1,1) = {" +aY +aY +aY +aY +aY +aO +aO +aL +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +am +OP +aO +aO +aY +aY +aY +aY +aY +"} +(24,1,1) = {" +aY +aY +aY +aY +aY +wR +aO +Ww +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +am +OP +aO +al +aY +aY +aY +aY +aY +"} +(25,1,1) = {" +aY +aY +aY +aY +aY +aY +aO +Ww +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +am +OP +aO +as +aw +aY +aY +aY +aY +"} +(26,1,1) = {" +aY +aY +aY +aY +aY +aY +aO +Ww +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +fQ +am +OP +pv +aO +aY +aY +aY +aY +aY +"} +(27,1,1) = {" +aY +aY +aY +aY +aY +pv +aO +Ww +am +DM +aD +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aD +rq +aR +OP +aO +aO +aY +aY +aY +aY +aY +"} +(28,1,1) = {" +aY +aY +aY +aY +aY +aO +as +Ww +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +lQ +aO +al +aY +aY +aY +aY +aY +"} +(29,1,1) = {" +aY +aY +aY +aY +aY +aO +al +aL +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +lQ +aO +aO +aO +aY +aY +aY +aY +"} +(30,1,1) = {" +aY +aY +aY +aY +aY +aO +aO +aL +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +OP +aO +pv +aO +aY +aY +aY +aY +"} +(31,1,1) = {" +aY +aY +aY +aY +aY +pv +aO +aL +am +aM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +lQ +aO +aO +aO +aw +aY +aY +aY +"} +(32,1,1) = {" +aY +aY +aY +aY +aY +aO +aO +aL +rI +aM +aD +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aD +rq +rI +lQ +aO +aO +as +wR +ab +ab +ab +"} +(33,1,1) = {" +aY +aY +aY +aY +aw +as +aO +aL +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +qa +aR +lQ +aO +aO +al +aO +ab +MM +ab +"} +(34,1,1) = {" +ab +ab +ab +ab +aO +aO +pv +rq +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +DM +aO +aO +aO +aO +Uo +MM +ab +"} +(35,1,1) = {" +ab +MM +MM +ab +aO +al +aO +aL +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +lQ +pv +aO +aO +aO +ab +ab +ab +"} +(36,1,1) = {" +ab +MM +MM +ab +aO +aO +aO +aL +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +am +lQ +al +aO +pv +aY +aY +aY +aY +"} +(37,1,1) = {" +ab +MM +MM +Uo +aO +aO +al +Ww +am +DM +aD +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aD +rq +rI +lQ +aO +aO +aO +aY +aY +aY +aY +"} +(38,1,1) = {" +ab +MM +MM +ab +pv +aO +aO +aL +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +OP +aO +aO +aY +aY +aY +aY +aY +"} +(39,1,1) = {" +ab +ab +ab +ab +aO +as +aO +Ww +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +fQ +rI +lQ +pv +aO +aw +aY +aY +aY +aY +"} +(40,1,1) = {" +aY +aY +aY +aY +aO +al +as +aL +aR +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +lQ +aO +al +aY +aY +aY +aY +aY +"} +(41,1,1) = {" +aY +aY +aY +aY +aO +aO +aO +aL +WM +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +aR +lQ +aO +aO +aY +aY +aY +aY +aY +"} +(42,1,1) = {" +aY +aY +aY +wR +aO +pv +aO +aL +wH +DM +aD +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aD +rq +aR +lQ +aO +pv +aY +aY +aY +aY +aY +"} +(43,1,1) = {" +aY +aY +aY +aO +aO +aO +pv +aL +aR +aM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +aR +lQ +aO +aY +aY +aY +aY +aY +aY +"} +(44,1,1) = {" +aY +aY +aY +aO +aO +aO +aO +aL +aR +aM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +aR +OP +as +aY +aY +aY +aY +aY +aY +"} +(45,1,1) = {" +aY +aY +aw +aO +aO +aO +al +Ww +rI +aM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +Sn +aO +aY +aY +aY +aY +aY +aY +"} +(46,1,1) = {" +aY +aY +aw +aO +pv +aO +aO +aL +rI +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +aR +Sn +pv +aO +aY +aY +aY +aY +aY +"} +(47,1,1) = {" +aY +aY +aw +aO +aO +aO +aO +aL +rI +DM +aD +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aD +fQ +am +lQ +al +aO +aw +aY +aY +aY +aY +"} +(48,1,1) = {" +aY +aY +aY +aO +aO +pv +aO +aL +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +fQ +rI +lQ +aO +aO +aw +aY +aY +aY +aY +"} +(49,1,1) = {" +aY +aY +aY +aO +aO +al +aO +aL +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +fQ +rI +lQ +aO +pv +aY +aY +aY +aY +aY +"} +(50,1,1) = {" +aY +aY +aY +aO +aO +as +aO +aL +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +lQ +aO +al +aY +aY +aY +aY +aY +"} +(51,1,1) = {" +aY +aY +aY +aO +aO +aO +al +aL +am +DM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +aR +lQ +aO +aO +aY +aY +aY +aY +aY +"} +(52,1,1) = {" +aY +aY +aY +pv +aO +aO +aO +aL +rI +aM +aD +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aD +rq +aR +lQ +pv +wR +aY +aY +aY +aY +aY +"} +(53,1,1) = {" +aY +aY +aO +aO +aO +pv +aO +Ww +rI +aM +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +rq +rI +lQ +aO +aY +aY +aY +aY +aY +aY +"} +(54,1,1) = {" +aY +aY +aO +aO +aO +aO +aO +Ww +am +aM +ae +ae +aD +ae +ae +ae +ae +aD +ae +ae +ae +ae +aD +ae +ae +ae +ae +aD +ae +ae +rq +am +lQ +as +aY +aY +aY +aY +aY +aY +"} +(55,1,1) = {" +aY +aY +aO +aO +al +aO +aO +aL +am +GS +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +mj +am +lQ +pv +aY +aY +aY +aY +aY +aY +"} +(56,1,1) = {" +aY +aY +aO +aO +pv +aO +aO +aL +aU +am +aR +rI +rI +rI +am +aR +aR +rI +rI +rI +Iv +am +rI +am +am +am +aR +aR +rI +am +am +Iv +OP +aO +aO +aY +aY +aY +aY +aY +"} +(57,1,1) = {" +aY +aY +aY +aO +aO +aO +al +qN +jv +jv +jv +RU +jv +jv +jv +jv +jv +QX +QX +rk +aR +AN +RU +jv +jv +jv +jv +jv +fE +QX +QX +QX +oA +aO +pv +aY +aY +aY +aY +aY +"} +(58,1,1) = {" +aY +aY +aY +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +as +aO +aO +pv +aL +rI +OP +aO +aO +aO +pv +aO +aO +aO +as +aO +aO +aO +al +aO +aY +aY +aY +aY +aY +"} +(59,1,1) = {" +aY +aY +aY +aO +aO +pv +aO +as +aO +aO +aO +aO +al +pv +aO +aO +aO +al +aO +aL +rI +oL +Js +pv +aO +aO +aO +pv +aO +al +aO +aO +pv +aO +aO +aY +aY +aY +aY +aY +"} +(60,1,1) = {" +aY +aY +aY +aO +al +aO +aO +zT +aO +pv +aO +as +aO +aO +aO +pv +aO +aO +aO +aL +aR +Cg +dF +aO +aO +al +aO +pv +aO +aO +aO +aO +aO +aO +aO +aY +aY +aY +aY +aY +"} +(61,1,1) = {" +aY +aY +aY +aO +aO +aO +aO +aO +al +aO +aO +aO +aO +aO +zT +aO +aO +as +aO +wL +rI +Mf +Zc +aO +aO +pv +aO +aO +aO +pv +aO +pv +aO +aO +al +aY +aY +aY +aY +aY +"} +(62,1,1) = {" +aY +aY +aY +aw +aO +aO +al +pv +aO +aO +aO +al +aO +aO +aO +aO +aY +ab +ab +ab +oC +ab +ab +ab +wR +aO +pv +aO +aO +aO +al +aO +aO +aO +aO +aY +aY +aY +aY +aY +"} +(63,1,1) = {" +aY +aY +aY +aY +aY +aY +aO +aO +aO +pv +aO +aO +pv +aO +aY +aw +aY +ab +Ep +lG +eK +Fx +io +ab +aY +aO +aO +aO +aO +aO +aO +Qu +aO +aY +aY +aY +aY +aY +aY +aY +"} +(64,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +wR +aO +aO +pv +aO +aO +aY +aY +aY +aY +ab +LS +rU +ZK +bk +tB +ab +aY +aY +aO +pv +aO +pv +aO +aO +aY +aY +aY +aY +aY +aY +aY +aY +"} +(65,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +aA +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +bL +bL +bL +ab +ab +ab +ab +ab +aA +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(66,1,1) = {" +ab +TX +TX +TX +aG +Xz +bj +bj +ai +ai +rr +ai +bj +FX +ai +TX +ai +ai +aG +sx +sx +XP +aG +Xz +bj +bj +ai +TX +ai +ai +rr +ai +bj +FX +ai +aG +TX +ai +bj +ab +"} +(67,1,1) = {" +ab +TX +TX +TX +aG +TX +bj +bj +bj +ai +TX +bz +bj +ai +ai +TX +lb +ai +aG +sx +sx +sx +aG +TX +bj +bj +ai +TX +lb +ai +TX +bz +bj +ai +lb +aG +TX +TX +bj +ab +"} +(68,1,1) = {" +ab +TX +TX +TX +aG +TX +Xz +TX +es +TX +TX +ai +bj +bj +Vs +TX +TX +TX +aG +sx +sx +sx +aG +aH +ai +bj +TX +TX +ai +bj +bj +Vs +bj +bj +TX +aG +TX +ai +bj +ab +"} +(69,1,1) = {" +ab +ab +ab +ab +ab +aY +aY +aY +ab +aY +aY +aY +aY +aY +ab +aY +aY +aY +ab +ab +ab +ab +ab +aY +aY +aY +aY +aY +aY +aY +aY +ab +aY +aY +aY +ab +ab +ab +ab +ab +"} +(70,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(71,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(72,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(73,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(74,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} +(75,1,1) = {" +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +"} diff --git a/_maps/outpost/hangar/nt_ice_40x40.dmm b/_maps/outpost/hangar/nt_ice_40x40.dmm new file mode 100644 index 000000000000..c2b6ae69926f --- /dev/null +++ b/_maps/outpost/hangar/nt_ice_40x40.dmm @@ -0,0 +1,6020 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"ab" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ac" = ( +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ag" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ah" = ( +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ak" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"am" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"an" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ap" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"as" = ( +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/hangar) +"at" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"au" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aw" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ax" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ay" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aC" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aF" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aH" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aQ" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aS" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aT" = ( +/turf/closed/indestructible/rock/schist, +/area/hangar) +"aX" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aY" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"by" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"bz" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"bQ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"cy" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"dQ" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"dZ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"eU" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/tech, +/area/hangar) +"fJ" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/door/poddoor/ert, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"gE" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/obj/machinery/elevator_call_button{ + dir = 8; + pixel_x = 25; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"hr" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"hI" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"hT" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ig" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"iw" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"iB" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"jF" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"jY" = ( +/obj/machinery/light/floor, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"kq" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/obj/effect/landmark/outpost/elevator{ + shaft = "1" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"kQ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"kT" = ( +/obj/machinery/computer/security{ + icon_state = "computer-middle"; + dir = 4; + pixel_x = -7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"lC" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"lI" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"lJ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"mA" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"mQ" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"na" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/chair/comfy/brown{ + dir = 8; + pixel_x = 6 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"oC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"pd" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/filingcabinet/double/grey, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"qW" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/hangar) +"rK" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"sS" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ta" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"tb" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/small/directional/east{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/newscaster/security_unit/directional/east{ + pixel_y = -6 + }, +/turf/open/floor/plasteel/dark, +/area/hangar) +"ti" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"um" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"uS" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"wK" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"xJ" = ( +/obj/machinery/computer/prisoner/management{ + icon_state = "computer-right"; + dir = 4; + pixel_x = -7 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"xO" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/wrapping{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"yG" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/wrapping{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"zM" = ( +/obj/machinery/telecomms/relay, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"Bf" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"BE" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"BK" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"CG" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"Dd" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ec" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ex" = ( +/obj/machinery/door/airlock/outpost, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech, +/area/hangar) +"EG" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"FH" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Go" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"GF" = ( +/obj/machinery/blackbox_recorder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"Hv" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/machinery/button/door{ + req_one_access_txt = "101"; + dir = 4; + pixel_x = 5; + pixel_y = 8 + }, +/obj/machinery/button/door{ + req_one_access_txt = "101"; + dir = 4; + pixel_x = 5; + pixel_y = -4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"HD" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/door/airlock{ + dir = 8 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"HH" = ( +/obj/machinery/door/airlock/outpost, +/turf/open/floor/plasteel/tech, +/area/hangar) +"Ia" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"JI" = ( +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"JN" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"KA" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Li" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Lt" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/hangar) +"LJ" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"LV" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Mm" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/hangar) +"Mz" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"NY" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Os" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ow" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"OJ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"OR" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"OU" = ( +/obj/effect/turf_decal/borderfloor/corner, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ps" = ( +/obj/machinery/computer/secure_data{ + icon_state = "computer-left"; + dir = 4; + pixel_x = -7 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"Px" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Qs" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Rk" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Rl" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Rx" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Sf" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Sg" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"SC" = ( +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Tn" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Tp" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Tq" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ui" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"VR" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Wd" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"WJ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"WR" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"XA" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"XQ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"XR" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Yt" = ( +/turf/open/floor/plasteel/tech, +/area/hangar) +"Zb" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ZW" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) + +(1,1,1) = {" +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 +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(2,1,1) = {" +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 +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(3,1,1) = {" +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +as +aT +aT +aT +aT +aT +as +aT +aT +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aT +aT +aT +as +ac +ac +ac +ac +ac +aT +aT +aT +aT +aT +aT +as +as +as +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(4,1,1) = {" +aT +aT +aT +aT +aT +aT +aT +ac +ac +ac +ac +ac +aQ +aT +aT +aT +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aT +aT +aQ +ac +ac +ac +ac +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(5,1,1) = {" +aT +aT +aT +aT +aT +aT +ac +ac +ac +Bf +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aT +aT +aT +aT +aT +"} +(6,1,1) = {" +aT +aT +aT +aT +aT +ac +ac +ac +ac +ab +ac +aQ +ak +ac +ac +ac +ac +ak +ac +ac +ab +ac +ac +aQ +ak +ac +ac +ac +ac +ak +ac +ac +ac +ab +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +aC +ac +ac +ac +aT +aT +aT +aT +aT +"} +(7,1,1) = {" +aT +aT +aT +aT +ac +ac +ac +aC +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ab +ac +ac +aQ +ac +ab +ac +ac +ac +ac +ac +aC +ac +ac +aT +aT +aT +aT +"} +(8,1,1) = {" +aT +aT +aT +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aQ +ac +as +aT +aT +aT +"} +(9,1,1) = {" +aT +aT +aT +ac +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +aQ +ac +ac +ac +ac +ac +ac +ak +ac +ab +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +aC +ac +ac +ac +ac +ac +aT +aT +aT +"} +(10,1,1) = {" +aT +aT +as +ac +ac +ac +ac +ac +aC +ac +ac +ac +ac +ac +ac +ac +ac +ac +aQ +ac +ac +ac +ac +ac +ak +ac +ac +ak +ac +ac +ac +ac +ac +aQ +ac +ac +ac +ac +ac +ac +ac +ab +ac +ak +ac +ac +ac +ac +Bf +ac +ac +ac +ac +ac +ac +aC +ac +as +aT +aT +"} +(11,1,1) = {" +aT +aT +as +ac +ac +aC +ac +ac +ac +ac +ac +ac +ac +ab +ac +ak +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ab +ac +ac +ac +ac +ab +ac +ac +as +aT +aT +"} +(12,1,1) = {" +aT +aT +aT +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +aT +aT +aT +"} +(13,1,1) = {" +aT +aT +aT +ac +ab +ac +ac +OU +ti +bz +wK +wK +EG +EG +EG +EG +wK +EG +EG +wK +wK +wK +wK +EG +wK +wK +wK +wK +wK +EG +EG +EG +wK +wK +wK +EG +EG +EG +EG +EG +EG +EG +Li +EG +EG +EG +EG +wK +wK +EG +mA +Tq +Rl +ac +ac +ac +ac +aT +aT +aT +"} +(14,1,1) = {" +aT +aT +aT +ac +ac +ac +ac +Ec +am +JI +aF +aF +aF +aF +sS +sS +sS +aF +sS +sS +aF +aF +aF +aF +sS +sS +sS +sS +sS +aF +aF +aF +aF +sS +sS +sS +sS +sS +Qs +sS +aF +aF +aF +aF +aF +sS +sS +sS +sS +sS +kQ +KA +ax +ac +ac +aC +ac +aT +aT +aT +"} +(15,1,1) = {" +aT +aT +aT +ac +ac +aC +ac +Dd +hI +LV +ta +ta +SC +ta +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ta +ta +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +hT +Rx +hI +ax +ac +ak +ac +ab +aT +aT +aT +"} +(16,1,1) = {" +aT +aT +aT +ac +ac +ac +ac +Rk +hI +at +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 +ag +an +bQ +ac +ac +ac +ac +as +aT +aT +"} +(17,1,1) = {" +aT +aT +aT +aT +ac +ak +ac +Rk +hI +Zb +jY +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 +jY +ag +hI +bQ +ac +ac +ab +ac +aT +aT +aT +"} +(18,1,1) = {" +aT +aT +aT +aT +ab +ac +ac +Rk +hI +au +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 +ay +aY +bQ +ac +aC +ac +ac +aT +aT +aT +"} +(19,1,1) = {" +aT +aT +aT +aT +ac +ac +ac +Rk +an +au +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 +ay +hI +ax +ac +ac +ac +ac +aT +aT +aT +"} +(20,1,1) = {" +aT +aT +aT +aT +aT +ac +ak +Rk +an +au +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 +ag +JI +bQ +ac +ac +ac +aT +aT +aT +aT +"} +(21,1,1) = {" +aT +aT +aT +aT +as +aC +ac +Rk +an +au +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 +ag +JI +bQ +ac +ab +ac +aT +aT +aT +aT +"} +(22,1,1) = {" +aT +aT +aT +aT +aT +ac +ab +Rk +an +au +jY +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 +jY +ag +JI +bQ +ac +ac +aT +aT +aT +aT +aT +"} +(23,1,1) = {" +aT +aT +aT +aT +aT +ac +ac +Rk +an +au +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 +ag +JI +bQ +ac +ac +aT +aT +aT +aT +aT +"} +(24,1,1) = {" +aT +aT +aT +aT +aT +aQ +ac +Dd +an +au +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 +ag +JI +bQ +ac +aC +aT +aT +aT +aT +aT +"} +(25,1,1) = {" +aT +aT +aT +aT +aT +aT +ac +Dd +an +au +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 +ag +JI +bQ +ac +ak +as +aT +aT +aT +aT +"} +(26,1,1) = {" +aT +aT +aT +aT +aT +aT +ac +Dd +JI +au +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 +ay +JI +bQ +ab +ac +aT +aT +aT +aT +aT +"} +(27,1,1) = {" +aT +aT +aT +aT +aT +ab +ac +Dd +JI +au +jY +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 +jY +ag +hI +bQ +ac +ac +aT +aT +aT +aT +aT +"} +(28,1,1) = {" +aT +aT +aT +aT +aT +ac +ak +Dd +JI +au +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 +ag +an +ax +ac +aC +aT +aT +aT +aT +aT +"} +(29,1,1) = {" +aT +aT +aT +aT +aT +ac +aC +Rk +JI +au +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 +ag +an +ax +ac +ac +ac +aT +aT +aT +aT +"} +(30,1,1) = {" +aT +aT +aT +aT +aT +ac +ac +Rk +JI +au +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 +ag +an +bQ +ac +ab +ac +aT +aT +aT +aT +"} +(31,1,1) = {" +aT +aT +aT +aT +aT +ab +ac +Rk +JI +at +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 +ag +an +ax +ac +ac +ac +as +aT +aT +aT +"} +(32,1,1) = {" +aT +aT +aT +aT +aT +ac +ac +Rk +an +at +jY +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 +jY +ag +an +ax +ac +ac +ak +aQ +aa +aa +aa +"} +(33,1,1) = {" +aT +aT +aT +aT +as +ak +ac +Rk +an +au +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 +lC +hI +ax +ac +ac +aC +ac +aa +Yt +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +ac +ac +ab +ag +an +au +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 +ag +an +au +ac +ac +ac +ac +HH +Yt +aa +"} +(35,1,1) = {" +aa +Yt +Yt +aa +ac +aC +ac +Rk +an +au +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 +ag +an +ax +ab +ac +ac +ac +aa +aa +aa +"} +(36,1,1) = {" +aa +Yt +Yt +aa +ac +ac +ac +Rk +an +au +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 +ag +JI +ax +aC +ac +ab +aT +aT +aT +aT +"} +(37,1,1) = {" +aa +Yt +Yt +HH +ac +ac +aC +Dd +JI +au +jY +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 +jY +ag +an +ax +ac +ac +ac +aT +aT +aT +aT +"} +(38,1,1) = {" +aa +Yt +Yt +aa +ab +ac +ac +Rk +JI +au +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 +ag +an +bQ +ac +ac +aT +aT +aT +aT +aT +"} +(39,1,1) = {" +aa +aa +aa +aa +ac +ak +ac +Dd +an +au +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 +ay +an +ax +ab +ac +as +aT +aT +aT +aT +"} +(40,1,1) = {" +aT +aT +aT +aT +ac +aC +ak +Rk +hI +au +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 +ag +an +ax +ac +aC +aT +aT +aT +aT +aT +"} +(41,1,1) = {" +aT +aT +aT +aT +ac +ac +ac +Rk +aY +au +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 +ag +hI +ax +ac +ac +aT +aT +aT +aT +aT +"} +(42,1,1) = {" +aT +aT +aT +aQ +ac +ab +ac +Rk +Sf +au +jY +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 +jY +ag +hI +ax +ac +ab +aT +aT +aT +aT +aT +"} +(43,1,1) = {" +aT +aT +aT +ac +ac +ac +ab +Rk +hI +at +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 +ag +hI +ax +ac +aT +aT +aT +aT +aT +aT +"} +(44,1,1) = {" +aT +aT +aT +ac +aC +ac +ac +Rk +hI +at +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 +ag +hI +bQ +ak +aT +aT +aT +aT +aT +aT +"} +(45,1,1) = {" +aT +aT +as +ac +ac +ac +aC +Dd +an +at +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 +ag +an +lJ +ac +aT +aT +aT +aT +aT +aT +"} +(46,1,1) = {" +aT +aT +as +ac +ab +ac +ac +Rk +an +au +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 +ag +hI +lJ +ab +ac +aT +aT +aT +aT +aT +"} +(47,1,1) = {" +aT +aT +as +ac +ac +ac +ac +Rk +an +au +jY +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 +jY +ay +JI +ax +aC +ac +as +aT +aT +aT +aT +"} +(48,1,1) = {" +aT +aT +aT +ac +ac +ab +ac +Rk +JI +au +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 +ay +an +ax +ac +ac +as +aT +aT +aT +aT +"} +(49,1,1) = {" +aT +aT +aT +ac +ac +aC +ac +Rk +JI +au +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 +ay +an +ax +ac +ab +aT +aT +aT +aT +aT +"} +(50,1,1) = {" +aT +aT +aT +ac +ac +ak +ac +Rk +JI +au +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 +ag +an +ax +ac +aC +aT +aT +aT +aT +aT +"} +(51,1,1) = {" +aT +aT +aT +ac +ac +ac +aC +Rk +JI +au +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 +ag +hI +ax +ac +ac +aT +aT +aT +aT +aT +"} +(52,1,1) = {" +aT +aT +aT +ab +ac +ac +ac +Rk +an +at +jY +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 +jY +ag +hI +ax +ab +aQ +aT +aT +aT +aT +aT +"} +(53,1,1) = {" +aT +aT +ac +ac +ac +ab +ac +Dd +an +at +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 +ag +an +ax +ac +aT +aT +aT +aT +aT +aT +"} +(54,1,1) = {" +aT +aT +ac +ac +ac +ab +ac +Dd +JI +at +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ah +ah +jY +ah +ah +ag +JI +ax +ak +aT +aT +aT +aT +aT +aT +"} +(55,1,1) = {" +aT +aT +ac +ac +aC +ac +ac +Rk +JI +um +Tn +aX +aX +aX +Tn +Tn +Tn +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +Tn +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +OJ +JI +ax +ab +aT +aT +aT +aT +aT +aT +"} +(56,1,1) = {" +aT +aT +ac +ac +ab +ac +ac +Rk +am +JI +JI +JI +JI +JI +an +an +an +an +an +JI +JI +JI +JI +an +an +hI +an +an +an +an +hI +by +an +an +JI +hI +hI +an +an +JI +JI +JI +an +JI +JI +JI +hI +hI +an +JI +JI +by +bQ +ac +ac +aT +aT +aT +aT +aT +"} +(57,1,1) = {" +aT +aT +aT +ac +ac +ac +aC +hr +Mz +Mz +BE +BE +Mz +Mz +Mz +Mz +Mz +Mz +Mz +oC +BE +BE +Mz +Mz +Mz +Mz +Mz +Mz +Mz +Mz +dZ +hI +iw +Mz +Mz +Mz +Mz +oC +oC +Mz +Mz +aw +BE +Mz +Mz +Mz +Mz +Mz +XA +aw +oC +oC +Ui +ac +ab +aT +aT +aT +aT +aT +"} +(58,1,1) = {" +aT +aT +aT +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +ac +ak +ac +aC +ab +Rk +an +bQ +ac +ac +ac +ab +ac +ac +ac +ak +ac +ac +ab +ac +ac +ac +ac +ac +ak +ac +ac +ac +aC +ac +aT +aT +aT +aT +aT +"} +(59,1,1) = {" +aT +aT +aT +ac +ac +ab +ac +ak +ac +ab +ac +ab +ac +ac +aC +aQ +ac +ab +ac +ac +ac +ac +ac +aC +ab +ac +ac +ac +ac +ac +Rk +an +Px +FH +ab +ac +ac +ac +ac +aC +ac +ab +ac +ac +aC +ab +ac +ab +ac +ac +Bf +ac +ab +ac +ac +aT +aT +aT +aT +aT +"} +(60,1,1) = {" +aT +aT +aT +ac +aC +ac +ac +Bf +ac +ac +aC +ac +ac +ac +ac +ab +ac +ac +aC +ac +ab +ac +ak +ac +ac +aT +aT +as +aT +aT +Rk +hI +cy +jF +ac +ac +aC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aC +ac +ac +ac +ac +ac +ac +aT +aT +aT +aT +aT +"} +(61,1,1) = {" +aT +aT +aT +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aC +ac +ac +ac +ak +ac +ac +aa +aS +aS +aS +aS +aa +aT +aT +aT +aT +Tp +an +aH +NY +ac +ac +ab +ac +aC +ab +ac +ac +aC +ab +ac +Bf +ac +ac +ac +ab +ac +ab +ac +ac +aC +aT +aT +aT +aT +aT +"} +(62,1,1) = {" +aT +aT +aT +as +ac +ac +aC +ab +ac +ac +ab +ac +ac +ac +ac +ab +ac +ac +ab +ac +aa +Hv +xJ +kT +Ps +aa +aa +aa +aa +aa +aa +Ow +aa +aa +aa +aQ +ac +ac +ac +ac +ac +ac +ac +ac +aC +ac +ab +ac +ac +ac +aC +ac +ac +ac +ac +aT +aT +aT +aT +aT +"} +(63,1,1) = {" +aT +aT +aT +aT +aT +ac +ac +aQ +ac +ac +aC +ac +ac +ac +aC +ac +ac +ac +aC +ac +Ex +Mm +eU +qW +Mm +Ex +Go +Go +aa +Lt +ig +WJ +lI +Os +aa +aT +ac +ab +ac +ab +ac +ac +aC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +as +aT +aT +aT +aT +aT +"} +(64,1,1) = {" +aT +aT +aT +aT +aT +aT +ac +ac +ak +ac +ac +ac +ab +ac +ac +ak +ac +ac +ac +ac +aa +pd +zM +GF +na +aa +Go +Go +aa +tb +XQ +CG +ZW +gE +aa +aT +aT +ac +ac +ac +ac +ab +ac +as +aT +aT +ac +ab +ac +ab +ac +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aa +aa +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +HD +HD +HD +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aa +aa +aa +aa +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +Go +Go +Go +fJ +uS +ap +ap +ap +VR +JN +Wd +Go +JN +JN +iB +JN +JN +Go +JN +JN +LJ +JN +ap +rK +JN +Go +JN +JN +fJ +mQ +mQ +kq +fJ +uS +ap +ap +ap +VR +JN +Wd +Go +JN +JN +iB +JN +JN +Go +JN +JN +LJ +JN +ap +rK +JN +fJ +Go +JN +ap +aa +"} +(67,1,1) = {" +aa +Go +Go +Go +fJ +Go +ap +ap +BK +yG +Ia +Go +ap +ap +ap +ap +JN +JN +Go +iB +JN +Go +XR +ap +JN +JN +Go +iB +JN +fJ +mQ +mQ +mQ +fJ +Go +ap +ap +BK +yG +Ia +Go +ap +ap +ap +ap +JN +JN +Go +iB +JN +Go +XR +ap +JN +iB +fJ +Go +Go +ap +aa +"} +(68,1,1) = {" +aa +Go +Go +Go +fJ +Go +uS +Sg +Wd +JN +ap +JN +Go +OR +JN +xO +dQ +JN +JN +Sg +Go +Go +JN +ap +ap +WR +Go +Go +Go +fJ +mQ +mQ +mQ +fJ +Wd +JN +ap +JN +Go +OR +JN +xO +dQ +JN +JN +Sg +Go +Go +JN +ap +ap +WR +ap +ap +Go +fJ +Go +JN +ap +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aT +aT +aa +aT +aT +aT +aT +aT +aa +aT +aT +aT +aT +aT +aa +aT +aT +aT +aT +aT +aa +aT +aT +aT +aa +aa +aa +aa +aa +aT +aT +aT +aT +aT +aa +aT +aT +aT +aT +aT +aa +aT +aT +aT +aT +aT +aa +aT +aT +aT +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +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 +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(71,1,1) = {" +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 +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(72,1,1) = {" +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 +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(73,1,1) = {" +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 +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(74,1,1) = {" +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 +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} +(75,1,1) = {" +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 +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +"} diff --git a/_maps/outpost/hangar/nt_ice_56x20.dmm b/_maps/outpost/hangar/nt_ice_56x20.dmm new file mode 100644 index 000000000000..c7e73652ef0d --- /dev/null +++ b/_maps/outpost/hangar/nt_ice_56x20.dmm @@ -0,0 +1,4965 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ad" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ae" = ( +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/hangar) +"af" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ag" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"ai" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"aj" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"al" = ( +/turf/closed/indestructible/rock/schist, +/area/hangar) +"an" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ap" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"as" = ( +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ax" = ( +/obj/machinery/light/floor, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ay" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aB" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"aE" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aG" = ( +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aI" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aM" = ( +/obj/structure/flora/grass/both, +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aN" = ( +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aW" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"aX" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"bq" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/hangar) +"cY" = ( +/obj/effect/turf_decal/borderfloor/corner, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"dM" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"ez" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/door/poddoor/ert, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"fC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"gQ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"iY" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"jk" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"jJ" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"ll" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"mu" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"mX" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"oq" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"oy" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"pb" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"pC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"pD" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/door/airlock{ + dir = 8 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"pM" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"qq" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"sp" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"sE" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"sN" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"uy" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"vh" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"vl" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"vM" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"xt" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"xy" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"xE" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"xT" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"zG" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ag" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Bh" = ( +/obj/machinery/door/airlock/outpost, +/turf/open/floor/plasteel/tech, +/area/hangar) +"BB" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Cs" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Cv" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/small/directional/east{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/newscaster/security_unit/directional/east{ + pixel_y = -6 + }, +/turf/open/floor/plasteel/dark, +/area/hangar) +"Dk" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Dn" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Eg" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Fs" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Fu" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"GL" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ho" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Hr" = ( +/turf/open/floor/plasteel/tech, +/area/hangar) +"HC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Jh" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"KH" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Ms" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Mx" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"MB" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"NE" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"OC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"OZ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Pu" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"PW" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Rl" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Rs" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"RC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"RI" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Sk" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"SC" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"SS" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Tj" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Uo" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/obj/machinery/elevator_call_button{ + dir = 8; + pixel_x = 25; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"UJ" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"VH" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"VX" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"WP" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"WQ" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/obj/effect/landmark/outpost/elevator{ + shaft = "1" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"XO" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"XU" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"YB" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"YK" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"YS" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"YT" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ZK" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ZZ" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) + +(1,1,1) = {" +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +"} +(2,1,1) = {" +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +"} +(3,1,1) = {" +al +al +al +al +al +al +al +al +al +al +aG +aG +al +al +al +ae +aG +aG +aG +aG +aG +al +al +al +al +al +al +ae +ae +ae +al +al +al +al +al +al +al +al +al +al +"} +(4,1,1) = {" +al +al +al +al +al +al +al +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +al +al +Fs +aG +aG +aG +aG +al +al +al +al +al +al +al +al +al +"} +(5,1,1) = {" +al +al +al +al +al +al +aG +aG +aG +aI +aG +KH +aG +aG +aG +aG +aG +aG +aG +aG +KH +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +al +al +al +al +al +"} +(6,1,1) = {" +al +al +al +al +al +aG +aG +aG +aG +KH +aG +aG +aG +KH +aG +aG +aG +KH +aG +aG +aG +aG +aG +aG +aG +aG +ap +aG +aG +aG +aG +NE +aG +aG +aG +al +al +al +al +al +"} +(7,1,1) = {" +al +al +al +al +aG +aG +aG +NE +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +ap +aG +aG +aG +KH +aG +aG +Fs +aG +KH +aG +aG +aG +aG +aG +NE +aG +aG +al +al +al +al +"} +(8,1,1) = {" +al +al +al +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 +Fs +aG +ae +al +al +al +"} +(9,1,1) = {" +al +al +al +aG +KH +aG +aG +aG +aG +aG +aG +KH +aG +aG +ap +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +KH +aG +aG +aG +aG +aG +NE +aG +aG +aG +aG +aG +al +al +al +"} +(10,1,1) = {" +al +al +ae +aG +aG +aG +aG +aG +NE +aG +aG +aG +aG +Fs +aG +aG +aG +aG +aG +aG +aG +KH +aG +ap +aG +aG +aG +aG +aI +aG +aG +aG +aG +aG +aG +NE +aG +ae +al +al +"} +(11,1,1) = {" +al +al +ae +aG +aG +NE +aG +aG +aG +aG +aG +aG +ap +aG +aG +aG +KH +aG +aG +aG +aG +aG +aG +aG +aG +KH +aG +aG +aG +KH +aG +aG +aG +aG +KH +aG +aG +ae +al +al +"} +(12,1,1) = {" +al +al +al +aG +aG +aG +aG +KH +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 +KH +aG +al +al +al +"} +(13,1,1) = {" +al +al +al +aG +KH +aG +aG +cY +ZK +ad +YK +YK +vh +vh +vh +YK +YK +YK +YK +YK +YK +YK +Tj +YK +YK +YK +YK +vh +vh +YK +sp +xT +BB +aG +aG +aG +aG +al +al +al +"} +(14,1,1) = {" +al +al +al +aG +aG +aG +KH +iY +aE +as +xE +xE +xE +mX +mX +mX +mX +mX +Ho +mX +xE +xE +xE +xE +xE +mX +mX +mX +mX +mX +YS +Ag +ay +aG +aG +NE +aG +al +al +al +"} +(15,1,1) = {" +al +al +al +aG +aG +NE +aG +Dk +Cs +gQ +aN +aN +ax +aN +aN +aN +aN +ax +aN +aN +aN +aN +ax +aN +aN +aN +aN +ax +aN +af +VX +Cs +ay +aG +ap +aG +KH +al +al +al +"} +(16,1,1) = {" +al +al +al +ap +aG +ap +aG +UJ +Cs +Rs +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +zG +ap +aG +aG +al +al +al +al +"} +(17,1,1) = {" +al +al +al +aG +aG +aG +NE +UJ +Cs +aX +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +Cs +zG +aG +NE +aG +al +al +al +al +"} +(18,1,1) = {" +al +al +al +ae +NE +aG +KH +UJ +Cs +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +pb +zG +KH +aG +aG +ae +al +al +al +"} +(19,1,1) = {" +al +al +al +al +KH +aG +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +Cs +ay +aG +aG +aG +NE +al +al +al +"} +(20,1,1) = {" +al +al +al +al +aG +aG +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +KH +aG +ap +aG +al +al +al +"} +(21,1,1) = {" +al +al +al +al +aG +aG +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +aG +aG +aG +al +al +al +al +"} +(22,1,1) = {" +al +al +al +al +aG +NE +KH +UJ +Dn +OZ +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +as +zG +aG +aG +aG +al +al +al +al +"} +(23,1,1) = {" +al +al +ae +aG +KH +aG +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +aG +NE +KH +al +al +al +al +"} +(24,1,1) = {" +al +al +al +ap +aG +KH +aG +Dk +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +KH +aG +aG +aG +al +al +al +"} +(25,1,1) = {" +al +al +al +aG +NE +aG +aG +Dk +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +aG +aG +NE +aG +al +al +al +"} +(26,1,1) = {" +al +al +al +Fs +aG +aG +NE +Dk +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +as +zG +ap +aG +aG +al +al +al +al +"} +(27,1,1) = {" +al +al +al +aG +ap +KH +aG +Dk +as +OZ +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +Cs +zG +aG +KH +Fs +ae +al +al +al +"} +(28,1,1) = {" +al +al +al +aG +aG +aG +KH +Dk +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +aG +aG +al +al +al +al +"} +(29,1,1) = {" +al +al +al +aG +aG +ap +aG +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +KH +aG +aG +al +al +al +al +"} +(30,1,1) = {" +al +al +ae +aG +KH +aG +NE +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +zG +aG +aG +KH +aG +al +al +al +"} +(31,1,1) = {" +al +al +ae +KH +aG +aG +KH +UJ +as +Rs +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +aG +NE +aG +al +al +al +"} +(32,1,1) = {" +al +al +al +aG +aG +NE +aG +UJ +Cs +Rs +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +Dn +zG +aG +aG +aG +aG +ae +al +al +"} +(33,1,1) = {" +al +al +al +al +aG +ap +aG +UJ +Cs +aX +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Cs +zG +ap +aG +KH +aG +al +al +al +"} +(34,1,1) = {" +al +al +al +al +KH +aG +ap +UJ +Cs +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +pb +zG +aG +NE +aG +aG +al +al +al +"} +(35,1,1) = {" +al +al +al +al +aG +aG +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +Cs +ay +aG +aG +ap +aG +al +al +al +"} +(36,1,1) = {" +al +al +al +al +al +aG +ap +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +aG +aG +aG +al +al +al +al +"} +(37,1,1) = {" +al +al +al +al +ae +NE +aG +UJ +Dn +OZ +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +as +zG +aG +KH +aG +al +al +al +al +"} +(38,1,1) = {" +al +al +al +al +al +aG +KH +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +aG +aG +al +al +al +al +al +"} +(39,1,1) = {" +al +al +al +al +al +ap +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +aG +aG +al +al +al +al +al +"} +(40,1,1) = {" +al +al +al +al +al +Fs +aG +Dk +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +aG +NE +al +al +al +al +al +"} +(41,1,1) = {" +al +al +al +al +al +al +aG +Dk +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +as +zG +aG +ap +ae +al +al +al +al +"} +(42,1,1) = {" +al +al +al +al +al +al +aG +Dk +as +OZ +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +vM +as +zG +KH +aG +al +al +al +al +al +"} +(43,1,1) = {" +al +al +al +al +al +KH +aG +Dk +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Cs +zG +aG +aG +al +al +al +al +al +"} +(44,1,1) = {" +al +al +al +al +al +aG +ap +Dk +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +NE +al +al +al +al +al +"} +(45,1,1) = {" +al +al +al +al +al +aG +NE +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +aG +aG +al +al +al +al +"} +(46,1,1) = {" +al +al +al +al +al +aG +aG +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +zG +aG +KH +aG +al +al +al +al +"} +(47,1,1) = {" +al +al +al +al +al +KH +aG +UJ +as +Rs +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +Dn +ay +aG +aG +aG +ae +al +al +al +"} +(48,1,1) = {" +al +al +al +al +al +aG +aG +UJ +Dn +Rs +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +aG +ap +Fs +ag +ag +ag +"} +(49,1,1) = {" +al +al +al +al +ae +ap +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ZZ +Cs +ay +aG +aG +NE +aG +ag +Hr +ag +"} +(50,1,1) = {" +ag +ag +ag +ag +aG +aG +KH +SC +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +OZ +aG +aG +aG +aG +Bh +Hr +ag +"} +(51,1,1) = {" +ag +Hr +Hr +ag +aG +NE +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +KH +aG +aG +aG +ag +ag +ag +"} +(52,1,1) = {" +ag +Hr +Hr +ag +aG +aG +aG +UJ +Dn +OZ +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +as +ay +NE +aG +KH +al +al +al +al +"} +(53,1,1) = {" +ag +Hr +Hr +Bh +aG +aG +NE +Dk +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +aG +aG +al +al +al +al +"} +(54,1,1) = {" +ag +Hr +Hr +ag +KH +aG +aG +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +zG +aG +aG +al +al +al +al +al +"} +(55,1,1) = {" +ag +ag +ag +ag +aG +ap +aG +Dk +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +Dn +ay +KH +aG +ae +al +al +al +al +"} +(56,1,1) = {" +al +al +al +al +aG +NE +ap +UJ +Cs +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +NE +al +al +al +al +al +"} +(57,1,1) = {" +al +al +al +al +aG +aG +aG +UJ +pb +OZ +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +Cs +ay +aG +aG +al +al +al +al +al +"} +(58,1,1) = {" +al +al +al +Fs +aG +KH +aG +UJ +YT +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Cs +ay +aG +KH +al +al +al +al +al +"} +(59,1,1) = {" +al +al +al +aG +aG +aG +KH +UJ +Cs +Rs +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Cs +ay +aG +al +al +al +al +al +al +"} +(60,1,1) = {" +al +al +al +aG +NE +aG +aG +UJ +Cs +Rs +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Cs +zG +ap +al +al +al +al +al +al +"} +(61,1,1) = {" +al +al +ae +aG +aG +aG +NE +Dk +Dn +Rs +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +OC +aG +al +al +al +al +al +al +"} +(62,1,1) = {" +al +al +ae +aG +KH +aG +aG +UJ +Dn +OZ +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +Cs +OC +KH +aG +al +al +al +al +al +"} +(63,1,1) = {" +al +al +ae +aG +aG +aG +aG +UJ +Dn +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +as +ay +NE +aG +ae +al +al +al +al +"} +(64,1,1) = {" +al +al +al +aG +aG +KH +aG +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +Dn +ay +aG +aG +ae +al +al +al +al +"} +(65,1,1) = {" +al +al +al +aG +aG +NE +aG +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +vM +Dn +ay +aG +KH +al +al +al +al +al +"} +(66,1,1) = {" +al +al +al +aG +aG +ap +aG +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +NE +al +al +al +al +al +"} +(67,1,1) = {" +al +al +al +aG +aG +aG +NE +UJ +as +OZ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Cs +ay +aG +aG +al +al +al +al +al +"} +(68,1,1) = {" +al +al +al +KH +aG +aG +aG +UJ +Dn +Rs +ax +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +ax +SC +Cs +ay +KH +Fs +al +al +al +al +al +"} +(69,1,1) = {" +al +al +aG +aG +aG +KH +aG +Dk +Dn +Rs +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +SC +Dn +ay +aG +al +al +al +al +al +al +"} +(70,1,1) = {" +al +al +aG +aG +aG +aG +aG +Dk +as +Rs +aN +aN +ax +aN +aN +aN +aN +ax +aN +aN +aN +aN +ax +aN +aN +aN +aN +ax +aN +aN +SC +as +ay +ap +al +al +al +al +al +al +"} +(71,1,1) = {" +al +al +aG +aG +NE +aG +aG +UJ +as +HC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +RC +vl +as +ay +KH +al +al +al +al +al +al +"} +(72,1,1) = {" +al +al +aG +aG +KH +aG +aG +UJ +aE +as +Cs +Dn +Dn +Dn +as +Cs +Cs +Dn +Dn +as +pM +as +Dn +as +as +as +Cs +Cs +Dn +as +as +pM +zG +aG +aG +al +al +al +al +al +"} +(73,1,1) = {" +al +al +al +aG +aG +aG +NE +GL +xt +xt +xt +Pu +uy +xt +xt +xt +xt +uy +uy +pC +Mx +mu +Pu +xt +xt +xt +xt +xt +RI +uy +uy +uy +PW +aG +KH +al +al +al +al +al +"} +(74,1,1) = {" +al +al +al +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +ap +aG +aG +KH +UJ +Rl +zG +aG +aG +aG +KH +aG +aG +aG +ap +aG +aG +aG +NE +aG +al +al +al +al +al +"} +(75,1,1) = {" +al +al +al +aG +aG +KH +aG +ap +aG +KH +aG +aG +NE +KH +aG +aG +aG +NE +aG +UJ +Rl +oy +VH +KH +aG +aG +aG +KH +aG +NE +aG +aG +KH +aG +aG +al +al +al +al +al +"} +(76,1,1) = {" +al +al +al +aG +NE +aG +aG +aI +aG +aG +aG +ap +aG +aG +aG +KH +aG +aG +aG +UJ +Mx +fC +Ms +aG +aG +NE +aG +KH +aG +aG +aG +aG +aG +aG +aG +al +al +al +al +al +"} +(77,1,1) = {" +al +al +al +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aI +aG +aG +ap +aG +oq +Rl +sE +XO +aG +aG +KH +aG +aG +aG +KH +aG +KH +aG +aG +NE +al +al +al +al +al +"} +(78,1,1) = {" +al +al +al +ae +aG +aG +NE +KH +aG +aG +aG +NE +aG +aG +aG +aG +al +ag +ag +ag +dM +ag +ag +ag +Fs +aG +KH +aG +aG +aG +NE +aG +aG +aG +aG +al +al +al +al +al +"} +(79,1,1) = {" +al +al +al +al +al +aG +aG +Fs +aG +aG +aG +aG +KH +aG +al +ae +al +ag +bq +Sk +YB +WP +an +ag +al +aG +aG +aG +aG +aG +aG +aM +aG +al +al +al +al +al +al +al +"} +(80,1,1) = {" +al +al +al +al +al +al +aG +aG +ap +aG +KH +aG +aG +al +al +al +al +ag +Cv +aW +jk +Fu +Uo +ag +al +al +aG +KH +aG +KH +aG +aG +al +al +al +al +al +al +al +al +"} +(81,1,1) = {" +ag +ag +ag +ag +ag +ag +ag +ag +aj +aj +aj +aj +ag +ag +ag +ag +ag +ag +ag +pD +pD +pD +ag +ag +ag +ag +ag +aj +aj +aj +aj +ag +ag +ag +ag +ag +ag +ag +ag +ag +"} +(82,1,1) = {" +ag +jJ +jJ +jJ +ez +ll +aB +aB +ai +ai +MB +ai +aB +SS +ai +jJ +ai +ai +ez +xy +xy +WQ +ez +ll +aB +aB +ai +jJ +ai +ai +MB +ai +aB +SS +ai +ez +jJ +ai +aB +ag +"} +(83,1,1) = {" +ag +jJ +jJ +jJ +ez +jJ +aB +aB +aB +ai +jJ +sN +aB +ai +ai +jJ +qq +ai +ez +xy +xy +xy +ez +jJ +aB +aB +ai +jJ +qq +ai +jJ +sN +aB +ai +qq +ez +jJ +jJ +aB +ag +"} +(84,1,1) = {" +ag +jJ +jJ +jJ +ez +jJ +ll +jJ +XU +jJ +jJ +ai +aB +aB +Jh +jJ +jJ +jJ +ez +xy +xy +xy +ez +Eg +ai +aB +jJ +jJ +ai +aB +aB +Jh +aB +aB +jJ +ez +jJ +ai +aB +ag +"} +(85,1,1) = {" +ag +ag +ag +ag +ag +al +al +al +ag +al +al +al +al +al +ag +al +al +al +ag +ag +ag +ag +ag +al +al +al +al +al +al +al +al +ag +al +al +al +ag +ag +ag +ag +ag +"} +(86,1,1) = {" +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +"} +(87,1,1) = {" +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +"} +(88,1,1) = {" +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +"} +(89,1,1) = {" +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +"} +(90,1,1) = {" +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +"} +(91,1,1) = {" +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +"} diff --git a/_maps/outpost/hangar/nt_ice_56x40.dmm b/_maps/outpost/hangar/nt_ice_56x40.dmm new file mode 100644 index 000000000000..07374d3394f8 --- /dev/null +++ b/_maps/outpost/hangar/nt_ice_56x40.dmm @@ -0,0 +1,7012 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/machinery/telecomms/relay, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"ad" = ( +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ai" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aj" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"am" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ao" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ar" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"at" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"au" = ( +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/hangar) +"aw" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aA" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"aD" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aE" = ( +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aG" = ( +/obj/machinery/light/floor, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aH" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"aI" = ( +/turf/closed/indestructible/rock/schist, +/area/hangar) +"aK" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aM" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aN" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aO" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"aP" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aT" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aV" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"aY" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"aZ" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ck" = ( +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"cm" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"cq" = ( +/obj/machinery/blackbox_recorder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"cX" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"cY" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"ds" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"dT" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/door/poddoor/ert, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"et" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"eM" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"eZ" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/filingcabinet/double/grey, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"fr" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"fM" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"gc" = ( +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"hT" = ( +/obj/machinery/computer/prisoner/management{ + icon_state = "computer-right"; + dir = 4; + pixel_x = -7 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"iJ" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"iY" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"jS" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"kd" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"kH" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"lu" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"md" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/obj/machinery/elevator_call_button{ + dir = 8; + pixel_x = 25; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"mj" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"mP" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"nC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"oc" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"pD" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"qx" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"qX" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"rD" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/tech, +/area/hangar) +"sw" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"sB" = ( +/obj/machinery/door/airlock/outpost, +/turf/open/floor/plasteel/tech, +/area/hangar) +"sP" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"tj" = ( +/turf/open/floor/plasteel/tech, +/area/hangar) +"tR" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"ub" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"um" = ( +/obj/machinery/computer/security{ + icon_state = "computer-middle"; + dir = 4; + pixel_x = -7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"uG" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"vc" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"vh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"vL" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"wT" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/hangar) +"yU" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Be" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"BN" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"BZ" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Cb" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Cg" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Ck" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Dc" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Dv" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/hangar) +"DV" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ei" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_y = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"Fn" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/small/directional/east{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/newscaster/security_unit/directional/east{ + pixel_y = -6 + }, +/turf/open/floor/plasteel/dark, +/area/hangar) +"FS" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080"; + name = "web" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"HV" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Iz" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Jh" = ( +/obj/effect/turf_decal/borderfloor/corner, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Jl" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Jt" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Jw" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Jx" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"JR" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1; + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"JY" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"Kd" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Kp" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/chair/comfy/brown{ + dir = 8; + pixel_x = 6 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"Lo" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"LP" = ( +/obj/machinery/door/airlock/outpost, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech, +/area/hangar) +"Ma" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"Mj" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Mt" = ( +/obj/machinery/computer/secure_data{ + icon_state = "computer-left"; + dir = 4; + pixel_x = -7 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"MM" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Nh" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"OW" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/door/airlock{ + dir = 8 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel/patterned/brushed{ + planetary_atmos = 1 + }, +/area/hangar) +"PJ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner, +/obj/machinery/light/small/directional/east{ + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Qi" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/obj/effect/landmark/outpost/elevator{ + shaft = "1" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Qx" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"QG" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Rn" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Rz" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 6 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Ts" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"UB" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel/patterned{ + planetary_atmos = 1 + }, +/area/hangar) +"UZ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/structure/railing{ + layer = 4.1; + dir = 10 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Vu" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"XG" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/machinery/button/door{ + req_one_access_txt = "101"; + dir = 4; + pixel_x = 5; + pixel_y = 8 + }, +/obj/machinery/button/door{ + req_one_access_txt = "101"; + dir = 4; + pixel_x = 5; + pixel_y = -4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/hangar) +"Yb" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) +"Yn" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/wrapping{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Yq" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Yt" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/wrapping{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"YA" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"YX" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/hangar) +"ZE" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/hangar) +"ZV" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2; + planetary_atmos = 1 + }, +/area/hangar) + +(1,1,1) = {" +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 +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(2,1,1) = {" +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 +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(3,1,1) = {" +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +au +aI +aI +aI +aI +aI +au +aI +aI +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aI +aI +aI +au +aE +aE +aE +aE +aE +aI +aI +aI +aI +aI +aI +au +au +au +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(4,1,1) = {" +aI +aI +aI +aI +aI +aI +aI +aE +aE +aE +aE +aE +aT +aI +aI +aI +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aI +aI +aT +aE +aE +aE +aE +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(5,1,1) = {" +aI +aI +aI +aI +aI +aI +aE +aE +aE +YX +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aI +aI +aI +aI +aI +"} +(6,1,1) = {" +aI +aI +aI +aI +aI +aE +aE +aE +aE +aZ +aE +aT +ai +aE +aE +aE +aE +ai +aE +aE +aZ +aE +aE +aT +ai +aE +aE +aE +aE +ai +aE +aE +aE +aZ +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +ai +aE +aE +aE +aE +ao +aE +aE +aE +aI +aI +aI +aI +aI +"} +(7,1,1) = {" +aI +aI +aI +aI +aE +aE +aE +ao +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +ai +aE +aE +aE +aZ +aE +aE +aT +aE +aZ +aE +aE +aE +aE +aE +ao +aE +aE +aI +aI +aI +aI +"} +(8,1,1) = {" +aI +aI +aI +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aT +aE +au +aI +aI +aI +"} +(9,1,1) = {" +aI +aI +aI +aE +aZ +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aT +aE +aE +aE +aE +aE +aE +ai +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +ai +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +ao +aE +aE +aE +aE +aE +aI +aI +aI +"} +(10,1,1) = {" +aI +aI +au +aE +aE +aE +aE +aE +ao +aE +aE +aE +aE +aE +aE +aE +aE +aE +aT +aE +aE +aE +aE +aE +ai +aE +aE +ai +aE +aE +aE +aE +aE +aT +aE +aE +aE +aE +aE +aE +aE +aZ +aE +ai +aE +aE +aE +aE +YX +aE +aE +aE +aE +aE +aE +ao +aE +au +aI +aI +"} +(11,1,1) = {" +aI +aI +au +aE +aE +ao +aE +aE +aE +aE +aE +aE +aE +aZ +aE +ai +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +ai +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aE +aZ +aE +aE +aE +aE +aZ +aE +aE +au +aI +aI +"} +(12,1,1) = {" +aI +aI +aI +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +aI +aI +aI +"} +(13,1,1) = {" +aI +aI +aI +aE +aZ +aE +aE +Jh +uG +Dc +aV +aV +aP +aP +aP +aP +aV +aP +aP +aV +aV +aV +aV +aP +aV +aV +aV +aV +aV +aP +aP +aP +aV +aV +aV +aP +aP +aP +aP +aP +aP +aP +ds +aP +aP +aP +aP +aV +aV +aP +Yb +oc +UZ +aE +aE +aE +aE +aI +aI +aI +"} +(14,1,1) = {" +aI +aI +aI +aE +aE +aE +aZ +ZV +Cb +ad +at +at +at +at +aM +aM +aM +at +aM +aM +at +at +at +at +aM +aM +aM +aM +aM +at +at +at +at +aM +aM +aM +aM +aM +iJ +aM +at +at +at +at +at +aM +aM +aM +aM +aM +Kd +iY +tR +aE +aE +ao +aE +aI +aI +aI +"} +(15,1,1) = {" +aI +aI +aI +aE +aE +ao +aE +aD +fM +Vu +vh +vh +gc +vh +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +vh +vh +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +Qx +Rn +fM +tR +aE +ai +aE +aZ +aI +aI +aI +"} +(16,1,1) = {" +aI +aI +aI +ai +aE +ai +aE +aj +fM +kd +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +am +ai +aE +aE +aI +aI +aI +aI +"} +(17,1,1) = {" +aI +aI +aI +aE +aE +aE +ao +aj +fM +sw +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +fM +am +aE +ao +aE +aI +aI +aI +aI +"} +(18,1,1) = {" +aI +aI +aI +au +ao +aE +aZ +aj +fM +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +Iz +am +aZ +aE +aE +au +aI +aI +aI +"} +(19,1,1) = {" +aI +aI +aI +aI +aZ +aE +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +fM +tR +aE +aE +aE +ao +aI +aI +aI +"} +(20,1,1) = {" +aI +aI +aI +aI +aE +aE +ao +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aZ +aE +ai +aE +aI +aI +aI +"} +(21,1,1) = {" +aI +aI +aI +aI +aE +aE +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aE +aE +ao +aI +aI +aI +aI +"} +(22,1,1) = {" +aI +aI +aI +aI +aE +ao +aZ +aj +aw +aK +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +ad +am +aE +aE +aE +aI +aI +aI +aI +"} +(23,1,1) = {" +aI +aI +au +aE +aZ +aE +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aE +ao +aZ +aI +aI +aI +aI +"} +(24,1,1) = {" +aI +aI +aI +ai +aE +aZ +aE +aD +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aZ +aE +aE +aE +aI +aI +aI +"} +(25,1,1) = {" +aI +aI +aI +aE +ao +aE +aE +aD +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aE +aE +ao +aE +aI +aI +aI +"} +(26,1,1) = {" +aI +aI +aI +aT +aE +aE +ao +aD +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +ad +am +ai +aE +aE +aI +aI +aI +aI +"} +(27,1,1) = {" +aI +aI +aI +aE +ai +aZ +aE +aD +ad +aK +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +fM +am +aE +aZ +aT +au +aI +aI +aI +"} +(28,1,1) = {" +aI +aI +aI +aE +aE +ao +aZ +aD +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aE +aE +ao +aI +aI +aI +aI +"} +(29,1,1) = {" +aI +aI +aI +ao +aE +ai +aE +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aZ +aE +aE +aI +aI +aI +aI +"} +(30,1,1) = {" +aI +aI +au +aE +aZ +aE +ao +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +am +aE +aE +aZ +aE +aI +aI +aI +"} +(31,1,1) = {" +aI +aI +au +aZ +aE +aE +aZ +aj +ad +kd +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aE +aE +ao +aE +aI +aI +aI +"} +(32,1,1) = {" +aI +aI +aI +aE +aE +ao +aE +aj +fM +kd +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +am +aE +aE +aE +aE +au +aI +aI +"} +(33,1,1) = {" +aI +aI +aI +aI +aE +ai +aE +aj +fM +sw +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +fM +am +ai +aE +aZ +aE +aI +aI +aI +"} +(34,1,1) = {" +aI +aI +aI +aI +aZ +aE +ai +aj +fM +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +Iz +am +aE +ao +aE +aE +aI +aI +aI +"} +(35,1,1) = {" +aI +aI +aI +aI +aE +aE +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +fM +tR +aE +aE +ai +aE +aI +aI +aI +"} +(36,1,1) = {" +aI +aI +aI +aI +aI +aE +ai +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aE +aE +aE +aI +aI +aI +aI +"} +(37,1,1) = {" +aI +aI +aI +aI +au +ao +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aE +aZ +aE +aI +aI +aI +aI +"} +(38,1,1) = {" +aI +aI +aI +aI +aI +aE +aZ +aj +aw +aK +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +ad +am +aE +aE +aI +aI +aI +aI +aI +"} +(39,1,1) = {" +aI +aI +aI +aI +aI +ai +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aE +aE +aI +aI +aI +aI +aI +"} +(40,1,1) = {" +aI +aI +aI +aI +aI +aT +aE +aD +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aE +ao +aI +aI +aI +aI +aI +"} +(41,1,1) = {" +aI +aI +aI +aI +aI +aI +aE +aD +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +am +aE +ai +au +aI +aI +aI +aI +"} +(42,1,1) = {" +aI +aI +aI +aI +aI +aI +aE +aD +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +ad +am +aZ +aE +aI +aI +aI +aI +aI +"} +(43,1,1) = {" +aI +aI +aI +aI +aI +aZ +aE +aD +ad +aK +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +fM +am +aE +aE +aI +aI +aI +aI +aI +"} +(44,1,1) = {" +aI +aI +aI +aI +aI +aE +ai +aD +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aE +ao +aI +aI +aI +aI +aI +"} +(45,1,1) = {" +aI +aI +aI +aI +aI +aE +ao +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aE +aE +aE +aI +aI +aI +aI +"} +(46,1,1) = {" +aI +aI +aI +aI +aI +aE +aE +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +am +aE +aZ +aE +aI +aI +aI +aI +"} +(47,1,1) = {" +aI +aI +aI +aI +aI +aZ +aE +aj +ad +kd +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aE +aE +aE +au +aI +aI +aI +"} +(48,1,1) = {" +aI +aI +aI +aI +aI +aE +aE +aj +aw +kd +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +aw +tR +aE +aE +ai +aT +aH +aH +aH +"} +(49,1,1) = {" +aI +aI +aI +aI +au +ai +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +Ck +fM +tR +aE +aE +ao +aE +aH +tj +aH +"} +(50,1,1) = {" +aH +aH +aH +aH +aE +aE +aZ +pD +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +aK +aE +aE +aE +aE +sB +tj +aH +"} +(51,1,1) = {" +aH +tj +tj +aH +aE +ao +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aZ +aE +aE +aE +aH +aH +aH +"} +(52,1,1) = {" +aH +tj +tj +aH +aE +aE +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +ad +tR +ao +aE +aZ +aI +aI +aI +aI +"} +(53,1,1) = {" +aH +tj +tj +sB +aE +aE +ao +aD +ad +aK +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +aw +tR +aE +aE +aE +aI +aI +aI +aI +"} +(54,1,1) = {" +aH +tj +tj +aH +aZ +aE +aE +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +am +aE +aE +aI +aI +aI +aI +aI +"} +(55,1,1) = {" +aH +aH +aH +aH +aE +ai +aE +aD +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +aw +tR +aZ +aE +au +aI +aI +aI +aI +"} +(56,1,1) = {" +aI +aI +aI +aI +aE +ao +ai +aj +fM +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aE +ao +aI +aI +aI +aI +aI +"} +(57,1,1) = {" +aI +aI +aI +aI +aE +aE +aE +aj +Iz +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +fM +tR +aE +aE +aI +aI +aI +aI +aI +"} +(58,1,1) = {" +aI +aI +aI +aT +aE +aZ +aE +aj +Jx +aK +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +fM +tR +aE +aZ +aI +aI +aI +aI +aI +"} +(59,1,1) = {" +aI +aI +aI +aE +aE +aE +aZ +aj +fM +kd +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +fM +tR +aE +aI +aI +aI +aI +aI +aI +"} +(60,1,1) = {" +aI +aI +aI +aE +ao +aE +aE +aj +fM +kd +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +fM +am +ai +aI +aI +aI +aI +aI +aI +"} +(61,1,1) = {" +aI +aI +au +aE +aE +aE +ao +aD +aw +kd +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +aO +aE +aI +aI +aI +aI +aI +aI +"} +(62,1,1) = {" +aI +aI +au +aE +aZ +aE +aE +aj +aw +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +fM +aO +aZ +aE +aI +aI +aI +aI +aI +"} +(63,1,1) = {" +aI +aI +au +aE +aE +aE +aE +aj +aw +aK +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +aN +ad +tR +ao +aE +au +aI +aI +aI +aI +"} +(64,1,1) = {" +aI +aI +aI +aE +aE +aZ +aE +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +aw +tR +aE +aE +au +aI +aI +aI +aI +"} +(65,1,1) = {" +aI +aI +aI +aE +aE +ao +aE +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aN +aw +tR +aE +aZ +aI +aI +aI +aI +aI +"} +(66,1,1) = {" +aI +aI +aI +aE +aE +ai +aE +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aE +ao +aI +aI +aI +aI +aI +"} +(67,1,1) = {" +aI +aI +aI +aE +aE +aE +ao +aj +ad +aK +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +fM +tR +aE +aE +aI +aI +aI +aI +aI +"} +(68,1,1) = {" +aI +aI +aI +aZ +aE +aE +aE +aj +aw +kd +aG +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +aG +pD +fM +tR +aZ +aT +aI +aI +aI +aI +aI +"} +(69,1,1) = {" +aI +aI +aE +aE +aE +aZ +aE +aD +aw +kd +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +ck +pD +aw +tR +aE +aI +aI +aI +aI +aI +aI +"} +(70,1,1) = {" +aI +aI +aE +aE +aE +aE +aE +aD +ad +kd +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +ck +ck +aG +ck +ck +pD +ad +tR +ai +aI +aI +aI +aI +aI +aI +"} +(71,1,1) = {" +aI +aI +aE +aE +ao +aE +aE +aj +ad +cX +Mj +ar +ar +ar +Mj +Mj +Mj +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +Mj +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +qX +ad +tR +aZ +aI +aI +aI +aI +aI +aI +"} +(72,1,1) = {" +aI +aI +aE +aE +aZ +aE +aE +aj +Cb +ad +ad +ad +ad +ad +aw +aw +aw +aw +aw +ad +ad +ad +ad +aw +aw +fM +aw +aw +aw +aw +fM +YA +aw +aw +ad +fM +fM +aw +aw +ad +ad +ad +aw +ad +ad +ad +fM +fM +aw +ad +ad +YA +am +aE +aE +aI +aI +aI +aI +aI +"} +(73,1,1) = {" +aI +aI +aI +aE +aE +aE +ao +jS +mj +mj +Nh +Nh +mj +mj +mj +mj +mj +mj +mj +fr +Nh +Nh +mj +mj +mj +mj +mj +mj +mj +mj +HV +fM +kH +mj +mj +mj +mj +fr +fr +mj +mj +Be +Nh +mj +mj +mj +mj +mj +MM +Be +fr +fr +Rz +aE +aZ +aI +aI +aI +aI +aI +"} +(74,1,1) = {" +aI +aI +aI +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +ai +aE +aE +aE +aE +aE +aE +ai +aE +ao +aZ +aj +aw +am +aE +aE +aE +aZ +aE +aE +aE +ai +aE +aE +aZ +aE +aE +aE +aE +aE +ai +aE +aE +aE +ao +aE +aI +aI +aI +aI +aI +"} +(75,1,1) = {" +aI +aI +aI +aE +aE +aZ +aE +ai +aE +aZ +aE +aZ +aE +aE +ao +aT +aE +aZ +aE +aE +aE +aE +aE +ao +aZ +aE +aE +aE +aE +aE +aj +aw +nC +Ei +aZ +aE +aE +aE +aE +ao +aE +aZ +aE +aE +ao +aZ +aE +aZ +aE +aE +YX +aE +aZ +aE +aE +aI +aI +aI +aI +aI +"} +(76,1,1) = {" +aI +aI +aI +aE +ao +aE +aE +YX +aE +aE +ao +aE +aE +aE +aE +aZ +aE +aE +ao +aE +aZ +aE +ai +aE +aE +aI +aI +au +aI +aI +aj +fM +Jw +JR +aE +aE +ao +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +ao +aE +aE +aE +aE +aE +aE +aI +aI +aI +aI +aI +"} +(77,1,1) = {" +aI +aI +aI +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +ao +aE +aE +aE +ai +aE +aE +aH +ub +ub +ub +ub +aH +aI +aI +aI +aI +BN +aw +PJ +mP +aE +aE +aZ +aE +ao +aZ +aE +aE +ao +aZ +aE +YX +aE +aE +aE +aZ +aE +aZ +aE +aE +ao +aI +aI +aI +aI +aI +"} +(78,1,1) = {" +aI +aI +aI +au +aE +aE +ao +aZ +aE +aE +aZ +aE +aE +aE +aE +aZ +aE +aE +aZ +aE +aH +XG +hT +um +Mt +aH +aH +aH +aH +aH +aH +qx +aH +aH +aH +aT +aE +aE +aE +aE +aE +aE +aE +aE +ao +aE +aZ +aE +aE +aE +ao +aE +aE +aE +aE +aI +aI +aI +aI +aI +"} +(79,1,1) = {" +aI +aI +aI +aI +aI +aE +aE +aT +aE +aE +ao +aE +aE +aE +ao +aE +aE +aE +ao +aE +LP +Dv +rD +wT +Dv +LP +lu +lu +aH +ZE +Lo +cY +UB +DV +aH +aI +aE +aZ +aE +aZ +aE +aE +ao +aE +aE +aE +aE +aE +aE +aE +aE +aE +aZ +aE +au +aI +aI +aI +aI +aI +"} +(80,1,1) = {" +aI +aI +aI +aI +aI +aI +aE +aE +ai +aE +aE +aE +aZ +aE +aE +ai +aE +aE +aE +aE +aH +eZ +ab +cq +Kp +aH +lu +lu +aH +Fn +Ma +cm +JY +md +aH +aI +aI +aE +aE +aE +aE +aZ +aE +au +aI +aI +aE +aZ +aE +aZ +aE +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(81,1,1) = {" +aH +aH +aH +aH +aH +aH +aH +ub +ub +ub +ub +aH +aH +ub +ub +ub +ub +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +OW +OW +OW +aH +aH +aH +aH +aH +aH +aH +ub +ub +ub +aH +aH +aH +aH +ub +ub +ub +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +"} +(82,1,1) = {" +aH +lu +lu +lu +dT +vL +aA +aA +aA +yU +Jt +Yq +lu +Jt +Jt +QG +Jt +Jt +lu +Jt +Jt +sP +Jt +aA +FS +Jt +lu +Jt +Jt +dT +aY +aY +Qi +dT +vL +aA +aA +aA +yU +Jt +Yq +lu +Jt +Jt +QG +Jt +Jt +lu +Jt +Jt +sP +Jt +aA +FS +Jt +dT +lu +Jt +aA +aH +"} +(83,1,1) = {" +aH +lu +lu +lu +dT +lu +aA +aA +Ts +Yn +Jl +lu +aA +aA +aA +aA +Jt +Jt +lu +QG +Jt +lu +et +aA +Jt +Jt +lu +QG +Jt +dT +aY +aY +aY +dT +lu +aA +aA +Ts +Yn +Jl +lu +aA +aA +aA +aA +Jt +Jt +lu +QG +Jt +lu +et +aA +Jt +QG +dT +lu +lu +aA +aH +"} +(84,1,1) = {" +aH +lu +lu +lu +dT +lu +vL +eM +Yq +Jt +aA +Jt +lu +BZ +Jt +Yt +Cg +Jt +Jt +eM +lu +lu +Jt +aA +aA +vc +lu +lu +lu +dT +aY +aY +aY +dT +Yq +Jt +aA +Jt +lu +BZ +Jt +Yt +Cg +Jt +Jt +eM +lu +lu +Jt +aA +aA +vc +aA +aA +lu +dT +lu +Jt +aA +aH +"} +(85,1,1) = {" +aH +aH +aH +aH +aH +aI +aI +aH +aI +aI +aI +aI +aI +aH +aI +aI +aI +aI +aI +aH +aI +aI +aI +aI +aI +aH +aI +aI +aI +aH +aH +aH +aH +aH +aI +aI +aI +aI +aI +aH +aI +aI +aI +aI +aI +aH +aI +aI +aI +aI +aI +aH +aI +aI +aI +aH +aH +aH +aH +aH +"} +(86,1,1) = {" +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 +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(87,1,1) = {" +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 +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(88,1,1) = {" +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 +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(89,1,1) = {" +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 +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(90,1,1) = {" +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 +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} +(91,1,1) = {" +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 +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +"} diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm index 5836ab2afcfd..b832b5f5b2f1 100644 --- a/_maps/outpost/indie_space.dmm +++ b/_maps/outpost/indie_space.dmm @@ -1,7153 +1,8460 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ac" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 +"ag" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/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{ +/obj/machinery/door/airlock/public{ dir = 4 }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/mono, -/area/outpost/crew) -"ag" = ( -/obj/machinery/door/airlock{ - id_tag = "ob2"; - name = "Stall 2"; +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) +/turf/open/floor/plasteel/tech, +/area/outpost/cargo/office) "ai" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"an" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"aq" = ( /obj/structure/railing{ dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 10 }, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plasteel/patterned, /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/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/vacant_rooms) -"aC" = ( -/obj/structure/cable{ - icon_state = "1-2" +/area/outpost/maintenance/fore) +"au" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/modglass{ + pixel_y = 1; + pixel_x = -6 }, -/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/item/reagent_containers/food/drinks/modglass{ + pixel_y = 5; + pixel_x = 5 }, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 +/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/hallway/central) -"bg" = ( -/obj/structure/rack, -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 +/area/outpost/storage) +"aB" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/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, +/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) -"bk" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 1 +"aP" = ( +/obj/structure/railing{ + dir = 8 }, -/obj/item/clipboard, -/obj/item/hand_labeler, -/turf/open/floor/plasteel/tech/techmaint, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"bo" = ( -/obj/structure/window/reinforced/tinted{ - dir = 8 +"aS" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/structure/window/reinforced/tinted{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 }, -/turf/open/floor/grass, -/area/outpost/crew) -"bs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/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) -"bt" = ( +"aX" = ( /obj/structure/railing/corner{ - dir = 4 + dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 6 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"bv" = ( -/obj/structure/railing{ +/obj/effect/turf_decal/corner/opaque/brown{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"bE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +"aZ" = ( +/obj/structure/chair{ + dir = 8 }, -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 +/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/vacant_rooms) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ +/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/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 10 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"bJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 }, -/obj/structure/cable{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"bs" = ( +/obj/structure/cable/yellow{ 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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"bT" = ( -/obj/structure/chair/wood/wings{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet, -/area/outpost/crew) -"cc" = ( -/obj/structure/chair/office{ +/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/item/radio/intercom/directional/west, -/turf/open/floor/plasteel, +/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) -"cg" = ( +"bC" = ( +/obj/machinery/light/small/directional/south, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 10 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"cl" = ( -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters{ +/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/machinery/newscaster/directional/west, -/obj/item/radio/intercom/directional/north{ - pixel_y = 32 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/random{ + pixel_x = -28 }, /turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"cs" = ( -/obj/structure/table, -/obj/item/circuitboard/machine/paystand, +/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/vacant_rooms) -"cx" = ( -/obj/item/kirbyplants/random, +/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) +"bW" = ( +/obj/machinery/light/directional/south, /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 +/area/outpost/security) +"bY" = ( +/obj/item/kirbyplants{ + icon_state = "plant-19" }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/vacant_rooms) -"cz" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/cargo) -"cC" = ( -/turf/open/floor/plasteel/tech/techmaint, +"ca" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "outpost1" + }, +/turf/open/floor/plasteel/patterned/cargo_one, /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" +"cc" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"cV" = ( -/obj/machinery/door/airlock{ - id_tag = "ob1"; - name = "Stall 1"; - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"cW" = ( -/obj/effect/turf_decal/box/corners{ +/obj/structure/disposalpipe/junction/yjunction{ dir = 4 }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"cZ" = ( -/obj/machinery/telecomms/allinone/indestructable{ - id = "Outpost" +/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) -"da" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 4 +"cg" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ +/obj/structure/disposalpipe/segment{ 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, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /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 +/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/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/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/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/outpost/crew/dorm) -"dD" = ( -/obj/effect/turf_decal/corner/opaque/green{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"dH" = ( -/obj/effect/turf_decal/siding/wood{ +"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 }, -/turf/open/floor/wood, -/area/outpost/crew) -"dK" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, +/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) -"dS" = ( +"cu" = ( +/obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/corner/opaque/red{ - dir = 9 + dir = 8 }, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"dW" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/area/outpost/security) +"cG" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/green{ +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/industrial/stand_clear{ dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"dY" = ( -/obj/structure/window/reinforced{ - dir = 4 +/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 }, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 +/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/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 +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 }, -/turf/open/floor/wood, -/area/outpost/crew) -"eg" = ( -/obj/effect/turf_decal/corner/opaque/green{ +/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 }, -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"cV" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/cargo/office) +"cX" = ( +/turf/open/floor/plasteel, +/area/outpost/security) +"dg" = ( +/obj/structure/railing{ 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 +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"eq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/obj/machinery/camera/autoname{ + dir = 5 }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"di" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 + dir = 4 }, -/turf/open/floor/wood, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"es" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +"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) -"et" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 +/area/outpost/crew/bar) +"dr" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/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/vacant_rooms) -"ex" = ( -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 8 +/area/outpost/crew/janitor) +"dK" = ( +/obj/item/trash/can/food/beans{ + pixel_x = -16; + pixel_y = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ey" = ( -/obj/structure/railing/corner{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/beans{ + pixel_x = 7; + pixel_y = 5 }, -/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/item/trash/can/food/beans{ + pixel_y = -2; + pixel_x = 2 }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = -9; + pixel_y = 18 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"ez" = ( -/obj/machinery/door/airlock{ - id_tag = "ob3"; - name = "Bathroom" +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"dL" = ( +/obj/structure/closet/secure_closet/armory3, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel, +/area/outpost/security) +"dN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew) -"eL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"dO" = ( /obj/item/kirbyplants{ - icon_state = "plant-03"; - name = "Dave" + icon_state = "plant-22" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8 +/obj/machinery/light/dim/directional/west, +/obj/machinery/camera/autoname{ + dir = 6 }, -/obj/structure/sign/poster/contraband/inteq_nt{ - pixel_y = 32 +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 6 }, -/obj/effect/decal/cleanable/confetti, -/turf/open/floor/plasteel, +/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) -"fc" = ( -/obj/structure/cable{ - icon_state = "2-8" +"dQ" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/trash/syndi_cakes{ + pixel_y = 6; + pixel_x = -3 }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 +/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" }, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/fore) +"dU" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" }, -/obj/structure/cable{ - icon_state = "1-2" +/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/effect/landmark/observer_start, -/turf/open/floor/plasteel, +/obj/item/reagent_containers/food/drinks/dry_ramen, +/turf/open/floor/plasteel/tech/techmaint, /area/outpost/hallway/central) -"fh" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +"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, -/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 +/obj/effect/turf_decal/steeldecal/steel_decals9, +/obj/effect/turf_decal/steeldecal/steel_decals9{ + dir = 8 }, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"fv" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 +/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/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"fC" = ( -/obj/machinery/button/door{ - pixel_y = 36; - pixel_x = -9; - id = "outsmall2"; - name = "window shutters" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 32; - pixel_x = -5 +/turf/open/floor/wood{ + icon_state = "wood-broken4" }, -/turf/open/floor/wood, -/area/outpost/crew) -"fD" = ( -/obj/machinery/door/airlock/public/glass, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/area/outpost/crew/bar) +"ei" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/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/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"fM" = ( -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/industrial/stand_clear{ dir = 8 }, -/obj/effect/turf_decal/siding/thinplating{ - 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 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 +/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) -"fQ" = ( +"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 = 8 + dir = 1 }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 4 +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + 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) -"fV" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 4 +/area/outpost/hallway/port) +"eD" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" }, -/obj/effect/turf_decal/box/corners, /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) -"fZ" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 +"eG" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/obj/structure/window/reinforced, -/obj/item/clipboard{ - pixel_y = -3; - pixel_x = -3 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/item/pen{ - pixel_y = -4; - pixel_x = -4 +/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" }, -/turf/open/floor/plasteel/tech/techmaint, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, /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 +"eU" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 +/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/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"gb" = ( -/obj/effect/turf_decal/siding/thinplating{ +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"fh" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/effect/turf_decal/siding/thinplating{ +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/door/poddoor/shutters/indestructible{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/airlock/security/brig{ + req_access = list("101"); dir = 4 }, -/obj/machinery/door/airlock{ - name = "Cryogenics"; +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"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 }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/dorm) -"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/structure/sign/plaques/kiddie/library{ + pixel_y = 26 }, -/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/effect/turf_decal/siding/wood, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 6 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ +/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" }, -/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{ +/obj/effect/turf_decal/corner_techfloor_gray{ dir = 10 }, -/turf/open/floor/wood, -/area/outpost/crew) -"gz" = ( +/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) -"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{ +"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/machinery/newscaster/directional/east, -/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, /turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"gK" = ( -/obj/item/kirbyplants/random, -/obj/structure/cable{ - icon_state = "0-2" +"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/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, -/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) -"gP" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -13 +/area/outpost/hallway/port) +"fP" = ( +/obj/structure/sign/poster/random{ + pixel_x = 28 }, -/obj/structure/mirror{ - pixel_x = -28 +/turf/open/floor/wood{ + icon_state = "wood-broken4" }, -/obj/machinery/light/small/directional/north, +/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/crew/dorm) -"gU" = ( -/obj/structure/railing/corner{ +/area/outpost/cargo) +"fZ" = ( +/obj/structure/chair, +/obj/effect/landmark/ert_outpost_spawn, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"ga" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/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) +"gg" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/corner/opaque/red{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/steeldecal/steel_decals_central6, +/turf/open/floor/plasteel, +/area/outpost/security) +"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 }, -/obj/structure/disposalpipe/segment{ - dir = 9 +/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/cable{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, -/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{ +/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 }, -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"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{ +/area/outpost/hallway/central) +"gA" = ( +/obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"hI" = ( -/obj/structure/railing{ - dir = 1 +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/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 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"hU" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"ia" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 +"gU" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"gW" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/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 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"hb" = ( +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"hg" = ( +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/disposaloutlet{ + dir = 1 }, -/obj/machinery/door/airlock/public/glass{ - dir = 4 +/obj/machinery/conveyor/auto{ + dir = 1; + id = "outpost3" }, -/obj/machinery/door/poddoor/preopen{ +/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 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"im" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ +/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/item/kirbyplants/random, -/obj/structure/cable{ - icon_state = "0-8" +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"hz" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2" }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"iw" = ( +/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/structure/disposalpipe/segment, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 10 }, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"iB" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 +/area/outpost/hallway/port) +"hD" = ( +/obj/structure/disposalpipe/trunk/multiz{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/firealarm/directional/east, +/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/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{ +/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 }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"iL" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 6 }, -/obj/structure/closet/crate, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"iQ" = ( -/obj/machinery/light/directional/north, +"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/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, +/obj/effect/turf_decal/floordetail/tiled, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"iV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/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/camera/autoname{ +/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 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"iY" = ( -/obj/structure/window/reinforced/tinted{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/structure/window/reinforced/tinted{ +/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 }, -/turf/open/floor/grass, -/area/outpost/crew) -"jd" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, -/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/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/structure/cable{ - icon_state = "4-8" +/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) -"jk" = ( -/obj/effect/turf_decal/box, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"jl" = ( +/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/stairs{ - dir = 1 +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"iI" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/area/outpost/hallway/central) -"jn" = ( -/obj/effect/turf_decal/box/corners{ +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/structure/closet/cardboard, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"jp" = ( -/obj/effect/landmark{ - name = "Primary Cargo Shaft" +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/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) -"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/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"jN" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"iQ" = ( +/obj/item/trash/can/food/beans{ + pixel_x = 5; + pixel_y = 5 }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 +/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/machinery/door/firedoor/border_only{ - dir = 8 +/obj/item/trash/can/food/beans{ + pixel_y = 1 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 13; + pixel_y = -9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/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 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/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/structure/cable{ +/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/machinery/door/airlock/public/glass{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/poddoor/preopen{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"jS" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 +"jI" = ( +/obj/machinery/door/airlock{ + dir = 1; + name = "Lounge" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"jU" = ( -/obj/structure/table, -/obj/machinery/door/window{ +/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/turf_decal/siding/thinplating{ +/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 }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"jW" = ( -/obj/machinery/airalarm/directional/east, -/obj/item/radio/intercom/directional/north{ - pixel_y = 32 +/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/vacant_rooms) +/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/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/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/camera/autoname{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 4 }, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 +/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/crew/dorm) -"ki" = ( -/obj/structure/chair/office, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) +/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) -"kA" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ +"kx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"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 +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"ky" = ( +/obj/structure/sign/painting/library{ + pixel_y = -26 }, -/obj/structure/cable{ - icon_state = "2-4" +/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" }, -/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 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/plasteel/mono, -/area/outpost/crew) -"kJ" = ( -/obj/structure/table/wood, -/obj/machinery/light/floor{ - bulb_colour = "#FFDDBB"; - bulb_power = 0.3 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/turf/open/floor/carpet, -/area/outpost/crew) -"kP" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"kQ" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"kE" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/siding/thinplating, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/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/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{ +/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/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{ +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"lb" = ( -/obj/machinery/door/poddoor/ert, -/obj/machinery/door/airlock/grunge, -/turf/open/floor/plasteel/tech/grid, -/area/outpost/operations) -"lj" = ( -/obj/structure/table/wood, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"lk" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"lp" = ( -/obj/effect/turf_decal/siding/wood/corner{ +"kR" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ 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) -"lx" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 +"kT" = ( +/obj/machinery/mineral/processing_unit_console{ + pixel_y = 20; + machinedir = 2; + output_dir = 4 }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/green/three_quarters, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"lz" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 +/obj/structure/railing, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 5 }, -/obj/structure/railing{ - dir = 1 +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"kU" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/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 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/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, +/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) -"lK" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" +"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 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"lP" = ( -/obj/structure/railing/corner{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 +/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/spline/fancy/opaque/black/corner{ - dir = 8 +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 8 +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"lo" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"lS" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 10 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"lq" = ( +/obj/machinery/door/airlock/maintenance{ + req_access = list("101") }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ 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/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 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 }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"lX" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"lZ" = ( -/obj/effect/turf_decal/siding/wood{ +"lt" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/door/window{ + req_access = list("101") }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/machinery/door/window{ + req_access = list("101"); + dir = 1 }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"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/effect/turf_decal/floordetail/tiled, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/window/reinforced, -/obj/structure/table/wood, -/obj/machinery/vending/boozeomat, -/turf/open/floor/carpet, -/area/outpost/crew) -"mp" = ( +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"lw" = ( /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{ +/obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/turf/open/floor/plasteel, +/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) -"mt" = ( +"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, -/obj/structure/cable{ +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"lH" = ( +/obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/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/machinery/cryopod{ + dir = 4 + }, +/obj/machinery/camera/autoname, +/obj/effect/turf_decal/corner_steel_grid{ dir = 5 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"mz" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"mb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ 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/supply/hidden/layer2{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"mB" = ( -/obj/structure/railing{ - dir = 1 + dir = 4 }, -/obj/structure/cable{ +/turf/open/floor/wood, +/area/outpost/crew/bar) +"md" = ( +/obj/structure/cable/yellow{ 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/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"mf" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"mk" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"mG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 +/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{ +/obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/machinery/camera/autoname{ - dir = 9 +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"mL" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 +/obj/structure/disposalpipe/junction{ + dir = 1 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 +/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) -"mO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +"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/cargo) -"mQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/ert, -/turf/closed/indestructible/reinforced, -/area/outpost/operations) -"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 +/area/outpost/maintenance/fore) +"ms" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/sign/directions/supply{ + pixel_y = 21; + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, /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) -"nd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +"mA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"nf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/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/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/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") }, -/obj/structure/cable{ +/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) -"np" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 +/area/outpost/crew/bar) +"mM" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" }, -/obj/structure/chair{ +/obj/effect/turf_decal/siding/wood{ 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 = 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-8" + }, +/obj/effect/turf_decal/corner/opaque/red{ dir = 4 }, -/obj/structure/cable{ +/turf/open/floor/plasteel, +/area/outpost/security) +"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/central) -"nw" = ( -/obj/effect/turf_decal/siding/wood/corner{ +/area/outpost/hallway/port) +"nd" = ( +/obj/structure/chair/office{ dir = 1 }, -/obj/machinery/light/directional/east, +/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) -"nz" = ( -/turf/open/floor/plasteel, +/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) -"nE" = ( -/obj/structure/chair/wood/wings{ - dir = 8 +"nt" = ( +/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/carpet, -/area/outpost/crew) -"nI" = ( -/obj/effect/decal/cleanable/dirt, /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/central) -"nK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/area/outpost/hallway/port) +"ny" = ( +/obj/structure/railing{ 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 +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"nO" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end{ +/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/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) -"nZ" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000; - piping_layer = 2 +"nK" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) -"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/turf_decal/industrial/warning, /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 +/area/outpost/hallway/central) +"nL" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"or" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 5 }, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 +/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 }, -/obj/structure/cable{ +/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, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ov" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/carpet, -/area/outpost/crew) -"oz" = ( -/obj/structure/cable{ +/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/machinery/atmospherics/components/binary/pump/on/layer2, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) -"oC" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 9 +/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/vacant_rooms) -"oF" = ( -/obj/structure/chair/office{ +/area/outpost/crew/bar) +"ob" = ( +/obj/effect/turf_decal/corner/opaque/red{ dir = 4 }, -/obj/item/radio/intercom/directional/west, -/obj/machinery/camera/autoname{ - dir = 6 - }, +/obj/effect/turf_decal/spline/fancy/opaque/grey, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"oR" = ( -/obj/structure/toilet{ - pixel_y = 13 +/area/outpost/security) +"od" = ( +/obj/machinery/shower{ + pixel_y = 17 }, -/obj/machinery/newscaster/directional/east, -/obj/machinery/light/small/directional/west, +/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/cargo) -"oV" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +/area/outpost/maintenance/fore) +"og" = ( +/obj/machinery/atmospherics/pipe/simple/multiz{ + pixel_y = 1; + pixel_x = -9 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"pe" = ( -/obj/structure/railing{ - dir = 10 +/obj/machinery/power/deck_relay, +/obj/machinery/atmospherics/pipe/simple/multiz{ + pixel_y = 1; + pixel_x = 8 }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"pl" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 +/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 }, -/obj/structure/table, +/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) -"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 +"op" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"pt" = ( -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/turf_decal/siding/thinplating{ +/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, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/door/airlock/public/glass, +/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/vacant_rooms) -"pw" = ( -/obj/structure/table, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"py" = ( -/obj/structure/railing{ +/area/outpost/storage) +"oN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/structure/railing{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"oQ" = ( +/obj/effect/turf_decal/corner/opaque/red{ + dir = 8 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel, +/area/outpost/security) +"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 }, -/turf/open/floor/plasteel/stairs{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 }, -/area/outpost/cargo) -"pA" = ( -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"pD" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "outsmall2"; - dir = 4 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"oU" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/structure/window/reinforced/fulltile/indestructable, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/mouse/brown, /turf/open/floor/plating, -/area/outpost/crew) -"pF" = ( -/obj/effect/turf_decal/box/corners{ +/area/outpost/maintenance/fore) +"oW" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ 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{ +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"pO" = ( +/obj/machinery/door/airlock/security/brig{ + req_access = list("101") + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"pb" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 13 + }, /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/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/structure/disposalpipe/segment{ - dir = 6 +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 4 }, -/turf/open/floor/wood, -/area/outpost/crew) -"pP" = ( -/obj/machinery/vending/coffee, -/obj/machinery/light/directional/north, /turf/open/floor/plasteel, -/area/outpost/crew) -"pV" = ( -/obj/structure/chair/greyscale{ - dir = 1 +/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 }, -/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters{ - dir = 1 +/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 }, -/obj/machinery/light/small/directional/west, -/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"pY" = ( -/obj/structure/railing/corner{ - dir = 1 +/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/stand_clear, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 1 +/obj/structure/holosign/barrier/infinite{ + max_integrity = 500 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"qc" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ 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" +/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/stairs{ - dir = 1 - }, -/area/outpost/hallway/central) -"qH" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -13 +/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/structure/mirror{ - pixel_x = -28 +/obj/item/pen/fourcolor{ + pixel_x = 3; + pixel_y = -2 }, -/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{ +/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 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"pC" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 +/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, +/turf/open/floor/plasteel/tech, /area/outpost/hallway/central) -"qT" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"qZ" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 +"pF" = ( +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/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/effect/turf_decal/siding/wood{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"pS" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" }, -/obj/machinery/door/airlock/wood{ +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"re" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/port) +"qb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-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) -"rj" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 +/obj/effect/decal/cleanable/crayon{ + icon_state = "electricdanger"; + pixel_y = 26 }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"rn" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 5 }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"rt" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"qg" = ( +/obj/structure/chair/sofa/left{ + dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"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{ +/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/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) -"rD" = ( -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/industrial/loading{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 +/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/siding/thinplating{ +/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/machinery/door/airlock/public/glass{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"rE" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) -"rF" = ( -/obj/structure/railing{ - dir = 8 +"qG" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/structure/railing{ +/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/turf_decal/spline/fancy/opaque/black{ +/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 }, -/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/structure/disposalpipe/segment{ + dir = 4 }, -/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 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/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 + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ +/obj/effect/turf_decal/corner/opaque/neutral{ 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 +/area/outpost/hallway/central) +"qW" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/security) +"qX" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow{ + icon_state = "0-2" }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"sd" = ( -/obj/structure/railing/corner{ +/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/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/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel, /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" +"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) -"sn" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +"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/central) -"sr" = ( -/obj/effect/landmark/outpost/elevator{ - shaft = "main" +/area/outpost/hallway/port) +"ro" = ( +/obj/machinery/power/terminal{ + dir = 4 }, -/turf/open/floor/plasteel/elevatorshaft, +/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) -"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 +"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 }, -/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 +/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/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/machinery/door/airlock/public/glass, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"sC" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{ + dir = 4 }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/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, -/area/outpost/hallway/central) -"sG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/area/outpost/vacant_rooms) +"ry" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"sH" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - 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 = 8 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"sI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"rz" = ( +/obj/structure/flora/rock, +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"rC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"rD" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable{ +/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) -"sL" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 8 +"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/box/corners{ +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"rP" = ( +/obj/structure/railing{ dir = 1 }, -/obj/structure/sign/poster/contraband/inteq_gec{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"sO" = ( -/obj/effect/turf_decal/corner/opaque/green{ +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/corner/opaque/brown{ dir = 10 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"sX" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"rQ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"te" = ( -/obj/machinery/door/poddoor/ert, -/turf/closed/indestructible/reinforced, -/area/outpost/operations) -"tg" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"ti" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ +/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 }, -/turf/open/floor/carpet, -/area/outpost/crew) -"tr" = ( -/obj/structure/table/wood, +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/wrapping, /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 +/turf/open/floor/wood, +/area/outpost/crew/library) +"rT" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/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{ +/obj/effect/turf_decal/steeldecal/steel_decals3{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"rU" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ 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) -"tC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/airlock{ - name = "Cryogenics" +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"rW" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"tH" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/poddoor/ert, -/obj/machinery/door/airlock/grunge{ - req_access_txt = "109" +/obj/effect/spawner/lootdrop/waste/trash, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/closed/indestructible/reinforced, -/area/outpost/operations) -"tK" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/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 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"tL" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, +/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) -"tU" = ( -/obj/machinery/light/directional/north, +/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 = 4 + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" + dir = 5 }, +/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"tZ" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 +"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/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{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"sm" = ( +/obj/structure/flippedtable{ 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{ +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/disposalpipe/junction/flip{ +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/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" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"uy" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 +/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 }, -/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" = ( +"sB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/office{ + dir = 4 + }, /obj/effect/turf_decal/siding/wood{ - dir = 8 + dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/confetti, /turf/open/floor/wood, -/area/outpost/crew) -"uL" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ +/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/techmaint, -/area/outpost/vacant_rooms) -"uQ" = ( -/obj/structure/urinal{ - pixel_y = 32 +/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 = 10 + dir = 4 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"uW" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 +/obj/machinery/door/airlock{ + dir = 4; + name = "Library" }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/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/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, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 +/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" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ve" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"ta" = ( /obj/structure/rack, -/obj/effect/turf_decal/box/corners{ +/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/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"vf" = ( -/obj/structure/chair/wood/wings{ +/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/machinery/newscaster/directional/west, -/obj/machinery/camera/autoname{ - dir = 1 +/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" }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"vn" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end{ +/obj/structure/disposalpipe/segment{ 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 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"vu" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/item/paper_bin, -/obj/item/pen, +/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/cargo) -"vv" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 +/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) -"vL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +"tu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/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 +/turf/open/floor/wood{ + icon_state = "wood-broken3" }, -/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ +/area/outpost/crew/bar) +"tv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ 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) -"vZ" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/newscaster/directional/south, -/obj/machinery/button/door{ - id = "ob1"; - name = "door lock"; - pixel_x = -22; - pixel_y = 23; - specialfunctions = 4; - normaldoorcontrol = 1 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"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 +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"tw" = ( +/obj/structure/table/wood, +/obj/item/newspaper{ + pixel_x = 1; + pixel_y = 7 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"wn" = ( -/obj/structure/cable{ +/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/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) -"wx" = ( -/obj/machinery/power/smes/magical{ - output_level = 200000 - }, -/obj/structure/cable, +"tC" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/operations) -"wB" = ( -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 +/area/outpost/hallway/central) +"tE" = ( +/obj/structure/railing{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/light/dim/directional/west, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 }, -/obj/machinery/door/airlock/public/glass{ - name = "Restroom" +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/dorm) -"wF" = ( -/obj/structure/window/reinforced/tinted{ - dir = 8 +/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/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/mirror{ + pixel_x = 26; + pixel_y = -4 }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 +/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 }, -/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, +/obj/effect/turf_decal/floordetail/pryhole, /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" = ( +/area/outpost/maintenance/fore) +"tI" = ( /obj/structure/railing{ - dir = 9 + dir = 4 }, -/obj/effect/turf_decal/industrial/warning/corner, -/turf/open/floor/plasteel/tech, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"xi" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey, +"tN" = ( +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 + dir = 4 }, -/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, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"xn" = ( +"tS" = ( /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) -"xy" = ( -/obj/structure/table, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 - }, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ +/obj/effect/spawner/lootdrop/maintenance/four, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"tT" = ( +/obj/structure/railing{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"xQ" = ( -/obj/structure/table, -/obj/item/circuitboard/machine/paystand, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 +/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 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"xW" = ( -/obj/structure/chair/wood/wings{ - dir = 4 +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 9 }, -/obj/machinery/button/door{ - dir = 4; - pixel_y = 7; - pixel_x = -38; - id = "outsmall1"; - name = "window shutters" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/carpet, -/area/outpost/crew) -"ya" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"tZ" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "4-8" }, /turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"yg" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, +/area/outpost/hallway/central) +"ua" = ( +/obj/item/radio/intercom/directional/east, /obj/structure/chair{ dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"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" = ( +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"ue" = ( +/obj/structure/table/wood, /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 +/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/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{ +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"uf" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/cable/yellow{ 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/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/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - 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) -"yy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +"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) -"yK" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box, +"um" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, /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{ +/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 }, -/obj/machinery/camera/autoname{ +/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 }, -/turf/open/floor/plasteel/tech, +/obj/machinery/light/dim/directional/north, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/cargo) -"zn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, +"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/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"uz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/turf/open/floor/wood, -/area/outpost/crew) -"zp" = ( -/obj/effect/turf_decal/box, -/obj/structure/closet/cardboard, -/turf/open/floor/plasteel/patterned/grid, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"zq" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "outsmall1" +"uA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, -/obj/structure/window/reinforced/fulltile/indestructable, -/turf/open/floor/plating, -/area/outpost/crew) -"zv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 + dir = 4 }, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"zG" = ( +/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) +"uI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /obj/effect/turf_decal/corner/opaque/red{ - dir = 6 + dir = 4 }, +/obj/machinery/newscaster/directional/west, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"zL" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 +/area/outpost/security) +"uJ" = ( +/obj/machinery/cryopod{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"uL" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 +/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/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 +"uN" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"zX" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 4 +/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/effect/turf_decal/trimline/opaque/green/line{ - dir = 8 +/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 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Ac" = ( -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"uV" = ( +/obj/structure/dresser{ + dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Am" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 +/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/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{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/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/structure/disposalpipe/segment{ - dir = 10 +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 }, -/obj/structure/cable{ +/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{ +/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/hallway/central) -"Ap" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, +/area/outpost/vacant_rooms) +"vp" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Au" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/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, -/turf/open/floor/wood, -/area/outpost/crew) -"AC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - 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/hallway/central) +"vB" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" + dir = 6 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/black{ +/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) -"AI" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 +"vH" = ( +/obj/machinery/conveyor/auto{ + dir = 6; + id = "outpost3" }, -/obj/machinery/newscaster/directional/south, -/obj/machinery/camera/autoname{ +/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, -/area/outpost/vacant_rooms) -"AK" = ( -/obj/machinery/door/airlock/public/glass, -/obj/structure/cable{ - icon_state = "1-2" +/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/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, +/obj/machinery/door/firedoor/border_only, /turf/open/floor/plasteel/tech, /area/outpost/hallway/central) -"AL" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 +"vX" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"AM" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"AR" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 +"vZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 9 +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"wa" = ( +/obj/structure/sign/painting/library{ + pixel_y = 0; + pixel_x = -26 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"AU" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/structure/disposalpipe/junction/flip{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/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) -"AY" = ( -/obj/effect/turf_decal/corner/opaque/green{ +"wi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ba" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/machinery/door/firedoor/border_only{ +/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 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/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/machinery/door/airlock/public/glass{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/poddoor/preopen{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 }, -/turf/open/floor/plasteel/tech, +/obj/effect/decal/cleanable/dirt, +/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{ +"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 }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Bp" = ( -/obj/effect/turf_decal/siding/thinplating{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/disposalpipe/junction/flip{ + dir = 1 }, -/obj/machinery/door/airlock/public/glass{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/tech, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"wE" = ( +/obj/structure/closet/secure_closet/armory1, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel, +/area/outpost/security) +"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) -"Bs" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +"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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/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/disposalpipe/segment{ - dir = 5 +/obj/structure/cable/yellow{ + icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"wW" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, /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 - }, +/area/outpost/security) +"wX" = ( /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/corner/opaque/green{ +/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/hallway/central) -"BE" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/area/outpost/storage) +"xc" = ( +/obj/effect/turf_decal/corner/opaque/red{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 +/turf/open/floor/plasteel, +/area/outpost/security) +"xf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 +/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) -"BF" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +"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/structure/disposalpipe/trunk{ - dir = 4 +/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 = 6 + dir = 5 }, -/turf/open/floor/plasteel, -/area/outpost/crew) -"BJ" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, +/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/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{ +/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 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Cc" = ( /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 = 4 + dir = 6 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/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{ +/obj/effect/turf_decal/corner/opaque/neutral{ 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 +"xK" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Ct" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/effect/turf_decal/techfloor{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/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 = 5 + dir = 9 }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"CI" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 +"xQ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/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/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"xW" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/door/airlock{ + name = "Restroom"; + id_tag = "out3" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/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/structure/disposalpipe/segment, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 + }, /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" +"yc" = ( +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"yh" = ( +/obj/structure/chair/sofa/corner{ + dir = 4 }, -/turf/open/floor/plasteel/stairs{ - dir = 1 +/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 }, -/area/outpost/hallway/central) -"CT" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"De" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 8 +/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" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Df" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 10 +/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/crew/dorm) -"Dg" = ( +/area/outpost/hallway/central) +"yq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/turf_decal/steeldecal/steel_decals6{ dir = 5 }, -/obj/structure/cable{ - icon_state = "1-2" +/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) -"Do" = ( -/obj/structure/table, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ +"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 }, -/obj/item/paper_bin, -/turf/open/floor/plasteel/tech/techmaint, +/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) -"Dz" = ( +"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) +"za" = ( +/obj/structure/falsewall/reinforced, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"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 = 9 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/floordetail/tiled, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"DA" = ( -/obj/structure/railing/corner{ - dir = 4 +/area/outpost/hallway/central) +"zg" = ( +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/structure/disposalpipe/junction{ +/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) -"DB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"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) -"DJ" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/wood{ +/area/outpost/crew/bar) +"zr" = ( +/obj/machinery/camera/autoname{ 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/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 8 }, -/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 +/area/outpost/storage) +"zv" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/sign/directions/service{ + pixel_y = 22; + dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"DX" = ( -/obj/structure/sink{ +"zC" = ( +/obj/machinery/conveyor{ dir = 4; - pixel_x = -13 + id = "outpost2" }, -/obj/structure/mirror{ - pixel_x = -28 +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"zD" = ( +/obj/machinery/camera/autoname{ + dir = 4 }, -/obj/machinery/light/small/directional/south, +/obj/machinery/light/directional/north, /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{ +/area/outpost/security) +"zE" = ( +/obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/structure/cable{ +/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, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Eg" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 +/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) -"Eh" = ( -/obj/structure/railing{ - dir = 1 +"zM" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"zO" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"En" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 +/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" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Eo" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 4 +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 5 }, +/obj/effect/decal/cleanable/generic, /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 +/area/outpost/maintenance/fore) +"Ab" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 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" }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Ev" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/black{ +/obj/machinery/camera/autoname{ dir = 5 }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Ez" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ 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{ +/area/outpost/crew/janitor) +"Ak" = ( +/obj/machinery/door/airlock/maintenance{ dir = 4 }, -/obj/machinery/microwave{ - pixel_y = 5 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/carpet, -/area/outpost/crew) -"EG" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"EH" = ( -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 +/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 }, -/obj/structure/disposalpipe/segment{ - dir = 6 +/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/structure/cable{ - icon_state = "2-4" +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/beans{ + pixel_x = 9; + pixel_y = 10 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"EI" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 1 +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = -14; + pixel_y = -7 }, -/obj/structure/chair{ - dir = 4 +/obj/item/reagent_containers/food/snacks/grown/soybeans{ + pixel_x = -12; + pixel_y = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"EK" = ( -/obj/structure/railing/corner{ - dir = 8 +/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 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"EM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/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 }, -/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/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/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 +/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/cargo) -"EY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 +/area/outpost/maintenance/central) +"AL" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/green{ +/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/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" = ( +/area/outpost/hallway/port) +"AM" = ( /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 +/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) -"FM" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"FN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ +"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/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/thinplating{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/siding/thinplating{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/machinery/door/airlock/public/glass{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"FQ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/projectile/bullet/dart/syringe{ + pixel_y = 4; + pixel_x = 8 }, -/turf/open/floor/wood, -/area/outpost/crew) -"FU" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ +/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 }, -/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 +/area/outpost/hallway/central) +"AT" = ( +/obj/structure/railing/wood{ + dir = 2; + color = "#792f27" }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"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{ +/turf/open/floor/plasteel/stairs/wood{ 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" + color = "#792f27" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/area/outpost/crew/bar) +"AU" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"AW" = ( /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 10 }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Gu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms/office) +"Bc" = ( +/obj/item/radio/intercom/directional/west, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/opaque/red{ dir = 4 }, +/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"GA" = ( -/obj/item/kirbyplants/random, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -32 +/area/outpost/security) +"Bd" = ( +/obj/machinery/computer/cryopod/directional/north, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 5 }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"GB" = ( -/obj/structure/rack, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"Bf" = ( +/obj/structure/table/wood, +/obj/machinery/camera/autoname{ + dir = 9 }, -/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{ +/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/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/supply/hidden/layer2{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"Bo" = ( +/obj/item/bedsheet, +/obj/structure/bed/pod, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"Bp" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ icon_state = "4-8" }, -/turf/open/floor/wood, -/area/outpost/crew) -"GK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/number/random, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"GL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/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 }, -/obj/structure/disposalpipe/junction{ - dir = 4 +/turf/open/floor/wood{ + icon_state = "wood-broken6" }, -/obj/structure/cable{ - icon_state = "2-4" +/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, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"GM" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/operations) -"GQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/area/outpost/vacant_rooms) +"Bu" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/beer/light{ + pixel_x = -8 }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32; - pixel_x = -33 +/obj/item/newspaper{ + pixel_x = 7; + pixel_y = 7 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"GS" = ( -/obj/structure/urinal{ - pixel_y = 32 +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"By" = ( +/obj/structure/closet/secure_closet/contraband, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"Bz" = ( +/obj/machinery/power/floodlight, +/obj/structure/cable/yellow{ + icon_state = "0-2" }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"GT" = ( -/obj/effect/turf_decal/corner/opaque/black{ +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"BA" = ( +/obj/structure/railing{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, /obj/structure/disposalpipe/segment{ - dir = 9 + dir = 10 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 1 +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"BE" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 4 +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 9 }, -/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 +/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) -"Hb" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment{ +"BM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"BN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, /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/steeldecal/steel_decals6{ + dir = 8 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"BO" = ( +/obj/structure/table, +/obj/item/radio/intercom/table{ + dir = 8; + layer = 2.99; + pixel_x = -6 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"BR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/obj/effect/turf_decal/spline/fancy/wood, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, -/area/outpost/vacant_rooms) -"Hg" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 +/area/outpost/crew/bar) +"BX" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_x = -2; + pixel_y = 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 +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"BY" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/fore) +"BZ" = ( +/obj/structure/railing{ + dir = 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{ +/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" }, -/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 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/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 +/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, -/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/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 }, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 4 +/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" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"HC" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 +/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 = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"HG" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 + dir = 4 }, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"HH" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, +/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 }, -/turf/open/floor/wood, -/area/outpost/crew) -"HL" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/green/end{ +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/effect/turf_decal/siding/thinplating{ +/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/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"HP" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/vending/coffee, -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"HR" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ - dir = 2 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"HU" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/light/directional/west, -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/tech, /area/outpost/hallway/central) -"HZ" = ( -/obj/structure/table/wood, -/obj/structure/displaycase/forsale, -/obj/effect/turf_decal/siding/wood/end, -/turf/open/floor/wood, +"Cp" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/vacant_rooms) -"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" +"Ct" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ik" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/floor{ - bulb_colour = "#FFDDBB"; - bulb_power = 0.3 +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/turf/open/floor/carpet, -/area/outpost/crew) -"Ip" = ( -/obj/structure/toilet{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/light/small/directional/east, -/obj/machinery/newscaster/directional/south, -/obj/machinery/button/door{ - id = "ob2"; - name = "door lock"; - pixel_x = -22; - pixel_y = 23; - specialfunctions = 4; - normaldoorcontrol = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"It" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/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 }, -/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 - }, +/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/hallway/central) -"IA" = ( -/obj/structure/cable{ - icon_state = "1-2" +/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 }, -/turf/open/floor/plasteel, -/area/outpost/operations) -"IB" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/floordetail/tiled, /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/maintenance/fore) +"CV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"IU" = ( +"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/effect/turf_decal/corner/opaque/black{ - dir = 9 +/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) -"IY" = ( -/obj/structure/chair/greyscale{ +"Di" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ - dir = 5 - }, -/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) +"Dm" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Do" = ( +/obj/effect/turf_decal/corner/opaque/red{ + dir = 1 }, -/obj/machinery/light/small/directional/east, /turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Jh" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 +/area/outpost/security) +"Dp" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/industrial/loading{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/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/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{ +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 4 }, -/obj/structure/disposalpipe/junction/yjunction{ +/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) +"DI" = ( +/obj/structure/railing{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Jr" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/decal/fakelattice, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/security) +"DL" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/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{ +/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 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"Jw" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 +"DS" = ( +/obj/machinery/power/smes/magical{ + name = "power relay" }, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 5 +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 32 +/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 }, -/turf/open/floor/carpet/royalblack, -/area/outpost/vacant_rooms) -"Jz" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/wood, -/area/outpost/crew) -"JB" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/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) -"JC" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 +"Et" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/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 = 9 + dir = 10 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 +/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) -"JL" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 +/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" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"JM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/steeldecal/steel_decals_central6, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms/office) +"Ff" = ( +/obj/effect/turf_decal/corner/opaque/red{ 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/newscaster/directional/west, +/turf/open/floor/plasteel, +/area/outpost/security) +"Fi" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 +/obj/structure/sign/poster/random{ + pixel_y = 30 }, -/obj/machinery/light/directional/east, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ka" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 +/area/outpost/hallway/port) +"Fl" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/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/dust, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Fn" = ( /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/effect/turf_decal/industrial/stand_clear{ +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Ko" = ( -/obj/effect/turf_decal/box/corners{ +/obj/machinery/door/window{ + req_access = list("101"); + dir = 8 + }, +/obj/machinery/door/window{ + req_access = list("101"); dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"Kt" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/effect/turf_decal/floordetail/tiled, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"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 }, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 +/turf/open/floor/wood{ + icon_state = "wood-broken4" }, -/obj/structure/cable{ - icon_state = "1-8" +/area/outpost/crew/bar) +"Fv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/structure/cable{ - icon_state = "2-8" +/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/hallway/central) -"Ku" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ +/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/machinery/newscaster/directional/south, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/cargo) -"Kw" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/line{ +"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/light/small/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Ky" = ( -/obj/effect/turf_decal/spline/fancy/wood{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ 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 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"KD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +/area/outpost/hallway/central) +"FI" = ( +/obj/structure/railing, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 5 }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"KH" = ( +"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) +"Gl" = ( +/obj/structure/bed/pod, +/obj/item/bedsheet, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"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/effect/turf_decal/box, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/corner/opaque/grey/full, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"KJ" = ( +/area/outpost/crew/janitor) +"Gv" = ( +/obj/structure/table, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"GB" = ( /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/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/maintenance{ + dir = 4; + req_access = list("101") }, /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, +/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) -"KU" = ( -/obj/machinery/power/terminal{ - dir = 8 +/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/operations) -"KV" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"KW" = ( -/obj/effect/turf_decal/siding/thinplating{ +/area/outpost/maintenance/fore) +"GQ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, -/obj/machinery/elevator_call_button{ - pixel_y = 25 +/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/effect/landmark/outpost/elevator_machine{ - shaft = "main" +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"KZ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 +"GU" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) -"Ld" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/structure/disposalpipe/junction/yjunction{ dir = 1 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"Lj" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"Lr" = ( -/obj/structure/railing/corner, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Lu" = ( -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"Lx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +"GW" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/flashlight/lamp/green{ + pixel_y = 24; + pixel_x = -16 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"GX" = ( +/obj/structure/chair/wood{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"Lz" = ( -/obj/structure/window/reinforced{ - dir = 8 +/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/plasteel/tech/techmaint, -/area/outpost/cargo) -"LD" = ( +/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/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/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) -"LG" = ( -/obj/structure/railing/corner{ - dir = 1 +"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 = 4 + dir = 8 }, -/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/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"LK" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters, -/obj/machinery/disposal/bin, -/obj/machinery/light/small/directional/south, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"LL" = ( -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"LO" = ( -/turf/open/floor/plasteel, -/area/outpost/operations) -"LP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, +/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) -"LZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +"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/wood, -/area/outpost/crew) -"Md" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"HG" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) -"Mk" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/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" +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Mt" = ( -/obj/effect/turf_decal/siding/thinplating{ +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /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 +"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, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"MA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 +/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) -"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{ +"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/cargo) -"MF" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 +/area/outpost/hallway/central) +"HX" = ( +/obj/machinery/door/airlock{ + dir = 4 }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/siding/thinplating{ - dir = 10 +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/item/circuitboard/machine/paystand, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"MN" = ( -/obj/structure/railing/corner{ +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 +/obj/structure/cable/yellow{ + icon_state = "4-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) -"MO" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 2 +/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/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 + dir = 9 }, -/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{ +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 6 + }, +/obj/effect/turf_decal/industrial/stand_clear{ dir = 8 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"Nl" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Ia" = ( +/obj/item/radio/intercom/wideband/table{ + dir = 8; + pixel_y = 19; + pixel_x = -6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 +/obj/machinery/computer/security{ + dir = 4; + layer = 3.1; + pixel_y = 5; + pixel_x = -5 }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"Ic" = ( /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{ +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"If" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ 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) -"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, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Oa" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 +/area/outpost/maintenance/fore) +"Ip" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/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/crew/dorm) -"Ob" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ +/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/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Od" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 +/area/outpost/storage) +"It" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 8 }, -/obj/machinery/newscaster/directional/east, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"Of" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/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 }, -/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) -"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 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, /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 +/area/outpost/crew/janitor) +"Iz" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"OY" = ( -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /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/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/central) -"Pa" = ( -/obj/machinery/light/directional/south, +/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/effect/turf_decal/corner/opaque/green{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ 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" = ( +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"IJ" = ( /obj/structure/table, -/obj/structure/window/reinforced{ +/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 }, -/obj/item/paper_bin{ - pixel_y = 3; - pixel_x = 2 +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"IN" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "!"; + pixel_x = 9 }, -/obj/structure/noticeboard{ - pixel_y = 28 +/obj/effect/decal/cleanable/crayon{ + icon_state = "f"; + pixel_y = 0; + pixel_x = -19 }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = 2 +/obj/effect/decal/cleanable/crayon{ + icon_state = "u"; + pixel_y = -5; + pixel_x = -10 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Pz" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 +/obj/effect/decal/cleanable/crayon{ + icon_state = "n" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"PA" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 +/obj/effect/decal/cleanable/crayon{ + icon_state = "arrow"; + pixel_y = -19; + pixel_x = 2 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/effect/decal/cleanable/crayon{ + icon_state = "arrow"; + pixel_y = -25; + pixel_x = -7 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, +/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) -"PE" = ( +"IT" = ( +/obj/machinery/camera/autoname, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/security) +"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 }, -/obj/structure/disposalpipe/segment{ - 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/structure/cable{ - icon_state = "4-8" +/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/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/steeldecal/steel_decals9, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"PG" = ( -/obj/structure/railing{ - dir = 4 +"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/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"PH" = ( -/obj/structure/railing{ - dir = 10 +/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 }, -/turf/open/floor/grass, -/area/outpost/crew) -"PR" = ( -/obj/structure/railing{ - dir = 5 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/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/structure/disposalpipe/segment{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/turf/open/floor/wood, +/turf/open/floor/plasteel/tech, /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 +"Jq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ +/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/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Qh" = ( +/area/outpost/hallway/central) +"JA" = ( +/obj/machinery/firealarm/directional/north, +/obj/machinery/disposal/bin, /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/trunk, /turf/open/floor/wood, -/area/outpost/crew) -"Qj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/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/vacant_rooms) -"Qk" = ( -/turf/open/floor/carpet, -/area/outpost/crew) -"Qn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/area/outpost/hallway/central) +"JF" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "electricdanger"; + pixel_y = -28 }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"JM" = ( +/obj/structure/chair/sofa/right{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Qt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"JS" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"JU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Qw" = ( -/obj/structure/railing{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/chair{ - dir = 1 +/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) -"QD" = ( -/obj/effect/turf_decal/box/corners, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"QK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +"Ki" = ( +/obj/machinery/door/poddoor/shutters/indestructible{ dir = 4 }, -/obj/structure/cable{ +/turf/closed/indestructible/rock, +/area/outpost/external) +"Kl" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/structure/sign/poster/official/random{ - pixel_x = 32; - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"QL" = ( -/obj/machinery/recycler, -/turf/open/floor/plasteel/tech/grid, -/area/outpost/operations) -"QP" = ( -/obj/structure/chair/office{ - dir = 1 +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"QR" = ( /obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"QT" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 + dir = 4 }, -/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{ +/area/outpost/hallway/port) +"Ko" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/camera/autoname{ dir = 5 }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"Rt" = ( -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, -/obj/item/radio/intercom/directional/west, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ru" = ( -/obj/structure/chair/office{ - dir = 8 +/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/item/radio/intercom/directional/north{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"Rv" = ( -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Ry" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/box/corners{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/effect/turf_decal/box/corners{ +/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 }, -/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" +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/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/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/green{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"RV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/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/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{ +/obj/effect/decal/cleanable/greenglow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Sc" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"KF" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/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{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/disposalpipe/junction/flip{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/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/machinery/door/airlock{ + dir = 4; + name = "Janitor Closet" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/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, +/area/outpost/crew/janitor) +"KI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/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{ +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"SV" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 +/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/turf_decal/siding/thinplating{ - dir = 8 +/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/machinery/door/firedoor/border_only{ - dir = 8 +/obj/structure/mirror{ + pixel_y = 30 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/sink{ + pixel_y = 24 }, -/obj/structure/barricade/wooden/crude, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/effect/turf_decal/corner/transparent/brown/full, +/turf/open/floor/plasteel, +/area/outpost/crew/bar) +"KS" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/door/airlock/public/glass{ +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"KV" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"Td" = ( -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/orange{ + dir = 5 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/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/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/structure/disposalpipe/segment{ + dir = 10 }, +/obj/effect/decal/cleanable/dirt/dust, /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/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) -"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{ +"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{ - icon_state = "1-4" +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/wood, -/area/outpost/crew) -"TW" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 10 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"TY" = ( -/obj/structure/window/reinforced{ +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ 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, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/tech, /area/outpost/cargo) -"Uo" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ +"Le" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel, +/area/outpost/security) +"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/effect/turf_decal/trimline/opaque/green/line{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ 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) -"Uw" = ( +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Lh" = ( /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 +/area/outpost/security) +"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" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Uz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/camera/autoname{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/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{ +/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/plasteel/tech/techmaint, -/area/outpost/cargo) -"Vh" = ( -/obj/structure/railing, -/obj/effect/turf_decal/industrial/warning{ +/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 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Vq" = ( +/obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ +/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/effect/decal/cleanable/dirt/dust, +/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) -"Vy" = ( -/obj/effect/turf_decal/siding/wood{ +"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) +"LJ" = ( +/obj/machinery/computer/helm/viewscreen/directional/north, +/obj/structure/chair/comfy{ 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/plasteel/patterned/cargo_one, +/area/outpost/security) +"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) -"VE" = ( -/obj/structure/railing, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/stairs{ - dir = 8 +/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 }, -/area/outpost/cargo) -"VG" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/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/machinery/door/firedoor/border_only{ +/obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/airlock/public/glass{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/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{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 }, -/obj/structure/cable{ +/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" }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"VW" = ( -/obj/structure/chair/wood/wings{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Md" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/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/disposalpipe/segment{ + dir = 4 }, -/obj/structure/toilet{ - dir = 8 +/obj/effect/decal/cleanable/crayon{ + icon_state = "firedanger"; + pixel_y = -28 }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Me" = ( +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"Mk" = ( /obj/machinery/newscaster/directional/south, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"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/crew) -"Wd" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood, -/area/outpost/crew) -"Wt" = ( -/obj/structure/railing{ - dir = 1 +/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 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/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 }, -/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 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/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/steeldecal/steel_decals7{ + dir = 9 }, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 6 }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"WT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/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/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 +/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/turf_decal/corner/opaque/green{ - dir = 5 +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/paper_bin{ + pixel_x = 6; + pixel_y = -4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"WW" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"MF" = ( +/obj/structure/chair/office{ + dir = 1 }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"MI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Xc" = ( -/obj/effect/turf_decal/corner/opaque/black{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ 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/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - 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 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"MM" = ( +/obj/structure/cable/yellow{ + icon_state = "2-9" }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/decal/cleanable/crayon{ + icon_state = "danger"; + pixel_x = 30 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Xl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"MO" = ( +/obj/structure/chair/pew/right{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Xm" = ( -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 }, /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 +"Nc" = ( +/turf/closed/indestructible/rock, +/area/outpost/hallway/central) +"Nd" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"Ne" = ( +/obj/item/radio/intercom/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/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 }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 +/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/table, +/obj/effect/spawner/lootdrop/donut/jelly, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"Nu" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/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/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 +/obj/structure/cable/yellow{ + icon_state = "1-4" }, /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{ +/area/outpost/hallway/port) +"Nv" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ dir = 1 }, -/obj/item/radio/intercom/directional/east, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"XI" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 +/area/outpost/storage) +"NF" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" }, -/obj/effect/turf_decal/siding/thinplating{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - 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/machinery/door/firedoor/border_only{ +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"NQ" = ( +/obj/structure/disposalpipe/trunk/multiz/down{ dir = 8 }, -/obj/machinery/door/airlock/public/glass{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - 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) -"XM" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet, -/area/outpost/crew) -"XS" = ( -/obj/structure/disposalpipe/segment, +"NU" = ( +/obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Yb" = ( +/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/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{ +/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 }, -/area/outpost/hallway/central) -"Yv" = ( -/obj/effect/turf_decal/box/corners{ +/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/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 +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Or" = ( +/obj/structure/chair/sofa/corner{ + dir = 1 }, -/obj/structure/sink{ - dir = 4; - pixel_x = -13 +/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/structure/mirror{ - pixel_x = -28 +/obj/item/reagent_containers/food/drinks/bottle/wine{ + pixel_y = 5; + pixel_x = 7 }, -/turf/open/floor/plasteel, -/area/outpost/cargo) -"YC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 +/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/plasteel, -/area/outpost/hallway/central) -"YE" = ( -/obj/item/kirbyplants/random, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"YI" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-4" +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"OG" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) -"YK" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"OH" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"YQ" = ( -/obj/effect/turf_decal/box/corners{ +/obj/effect/turf_decal/industrial/warning{ 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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/siding/thinplating, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/door/airlock/public/glass, /turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"YV" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 +/area/outpost/hallway/port) +"OI" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/machinery/door/firedoor/border_only{ +/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/siding/wood{ +/obj/effect/turf_decal/corner/opaque/black{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/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/machinery/door/airlock/wood{ +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Pm" = ( +/obj/structure/chair{ dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"YX" = ( -/obj/machinery/door/window{ +/obj/item/toy/figure/captain, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Po" = ( +/obj/structure/chair/pew{ dir = 8 }, -/obj/effect/turf_decal/siding/wood{ +/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 }, -/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 +/area/outpost/crew/bar) +"PF" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/industrial/warning/dust{ dir = 1 }, -/obj/structure/disposalpipe/junction{ - dir = 4 +/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{ - icon_state = "4-8" +/obj/structure/cable/yellow{ + icon_state = "1-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/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/holosign/barrier/infinite{ + max_integrity = 500 }, -/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/plasteel, +/area/outpost/hallway/port) +"PI" = ( +/obj/effect/turf_decal/box/corners{ dir = 4 }, -/obj/structure/cable{ +/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/plasteel/tech, -/area/outpost/cargo) -"Zg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" +/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" }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"PV" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"PY" = ( +/obj/machinery/door/airlock/security/brig{ + req_access = list("101") }, -/turf/open/floor/plasteel/tech/grid, -/area/outpost/operations) -"Zi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ 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{ +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ 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/tech, +/area/outpost/security) +"Qa" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Zt" = ( -/obj/structure/window/reinforced/tinted{ +/obj/effect/turf_decal/corner/opaque/neutral{ 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{ +/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/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 +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Qg" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" }, -/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/structure/cable/yellow{ + icon_state = "1-9" }, -/obj/machinery/light/directional/east, -/obj/effect/decal/cleanable/dirt/dust, +/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/vacant_rooms) -"ZS" = ( -/obj/structure/cable{ - icon_state = "1-4" +/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 = 5 + dir = 4 }, -/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{ +/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) +"Qr" = ( +/obj/effect/turf_decal/corner/opaque/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/security) +"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/structure/cable{ +/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) +"Ro" = ( +/obj/structure/falsewall/reinforced, +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/fore) +"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) -"ZY" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ +"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_x = -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/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 -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -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) = {" +/area/outpost/storage) +"RM" = ( +/obj/effect/turf_decal/corner/opaque/red{ + dir = 1 + }, +/obj/effect/landmark/ert_outpost_spawn, +/turf/open/floor/plasteel, +/area/outpost/security) +"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 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/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) +"SO" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/security) +"SS" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/ert_outpost_spawn, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/security) +"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) +"Te" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/security) +"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/plating, +/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) +"WJ" = ( +/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/machinery/door/airlock/security/brig{ + req_access = list("101") + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"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, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/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/structure/railing{ + dir = 8 + }, +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/security) +"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 + }, +/obj/structure/cable/yellow{ + icon_state = "1-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) +"Zl" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel, +/area/outpost/security) +"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 @@ -7270,7 +8577,7 @@ mC mC mC "} -(13,1,1) = {" +(2,1,1) = {" mC mC mC @@ -7393,7 +8700,7 @@ mC mC mC "} -(14,1,1) = {" +(3,1,1) = {" mC mC mC @@ -7516,7 +8823,7 @@ mC mC mC "} -(15,1,1) = {" +(4,1,1) = {" mC mC mC @@ -7639,7 +8946,7 @@ mC mC mC "} -(16,1,1) = {" +(5,1,1) = {" mC mC mC @@ -7762,7 +9069,7 @@ mC mC mC "} -(17,1,1) = {" +(6,1,1) = {" mC mC mC @@ -7885,7 +9192,7 @@ mC mC mC "} -(18,1,1) = {" +(7,1,1) = {" mC mC mC @@ -8008,7 +9315,7 @@ mC mC mC "} -(19,1,1) = {" +(8,1,1) = {" mC mC mC @@ -8131,7 +9438,7 @@ mC mC mC "} -(20,1,1) = {" +(9,1,1) = {" mC mC mC @@ -8254,7 +9561,7 @@ mC mC mC "} -(21,1,1) = {" +(10,1,1) = {" mC mC mC @@ -8377,7 +9684,7 @@ mC mC mC "} -(22,1,1) = {" +(11,1,1) = {" mC mC mC @@ -8500,7 +9807,7 @@ mC mC mC "} -(23,1,1) = {" +(12,1,1) = {" mC mC mC @@ -8623,7 +9930,7 @@ mC mC mC "} -(24,1,1) = {" +(13,1,1) = {" mC mC mC @@ -8746,7 +10053,7 @@ mC mC mC "} -(25,1,1) = {" +(14,1,1) = {" mC mC mC @@ -8869,7 +10176,7 @@ mC mC mC "} -(26,1,1) = {" +(15,1,1) = {" mC mC mC @@ -8992,7 +10299,7 @@ mC mC mC "} -(27,1,1) = {" +(16,1,1) = {" mC mC mC @@ -9115,7 +10422,7 @@ mC mC mC "} -(28,1,1) = {" +(17,1,1) = {" mC mC mC @@ -9238,7 +10545,7 @@ mC mC mC "} -(29,1,1) = {" +(18,1,1) = {" mC mC mC @@ -9361,47 +10668,7 @@ 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 +(19,1,1) = {" mC mC mC @@ -9427,14 +10694,6 @@ mC mC mC mC -Or -pD -pD -pD -pD -pD -pD -Or mC mC mC @@ -9483,8 +10742,6 @@ mC mC mC mC -"} -(31,1,1) = {" mC mC mC @@ -9533,6 +10790,8 @@ mC mC mC mC +"} +(20,1,1) = {" mC mC mC @@ -9549,16 +10808,6 @@ mC mC mC mC -Or -Or -fC -ov -Ik -Ik -bT -jD -Or -Or mC mC mC @@ -9606,8 +10855,6 @@ mC mC mC mC -"} -(32,1,1) = {" mC mC mC @@ -9666,22 +10913,14 @@ mC mC mC mC +"} +(21,1,1) = {" mC mC mC mC mC mC -Or -ec -es -Qk -nE -nE -XM -EB -Zi -Or mC mC mC @@ -9729,8 +10968,6 @@ mC mC mC mC -"} -(33,1,1) = {" mC mC mC @@ -9794,23 +11031,13 @@ mC mC mC mC -Or -Or -Or -ys -bo -wF -Ep -NH -af -Or -Or -Or mC mC mC mC mC +"} +(22,1,1) = {" mC mC mC @@ -9852,8 +11079,6 @@ mC mC mC mC -"} -(34,1,1) = {" mC mC mC @@ -9916,19 +11141,6 @@ mC mC mC mC -Or -Or -gK -YK -TB -PR -rB -rB -FB -FQ -Ov -vf -Or mC mC mC @@ -9947,6 +11159,8 @@ mC mC mC mC +"} +(23,1,1) = {" mC mC mC @@ -9975,8 +11189,6 @@ mC mC mC mC -"} -(35,1,1) = {" mC mC mC @@ -10039,20 +11251,6 @@ mC mC mC mC -Or -Sp -Ww -sa -GJ -uG -rt -rt -tL -HH -lZ -lj -Or -Or mC mC mC @@ -10084,6 +11282,8 @@ mC mC mC mC +"} +(24,1,1) = {" mC mC mC @@ -10098,8 +11298,6 @@ mC mC mC mC -"} -(36,1,1) = {" mC mC mC @@ -10162,20 +11360,6 @@ mC mC mC mC -Or -pP -Rd -tg -xa -nf -du -KQ -Ou -Oz -Rk -kY -GA -Or mC mC mC @@ -10222,17 +11406,7 @@ mC mC mC "} -(37,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC +(25,1,1) = {" mC mC mC @@ -10283,22 +11457,6 @@ mC mC mC mC -Or -Or -Or -BF -Rk -kW -ng -Qh -Qh -Qh -Qh -Yo -Nl -Rk -oq -Or mC mC mC @@ -10344,8 +11502,6 @@ mC mC mC mC -"} -(38,1,1) = {" mC mC mC @@ -10372,6 +11528,8 @@ mC mC mC mC +"} +(26,1,1) = {" mC mC mC @@ -10405,24 +11563,6 @@ 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 @@ -10467,8 +11607,6 @@ mC mC mC mC -"} -(39,1,1) = {" mC mC mC @@ -10513,6 +11651,8 @@ mC mC mC mC +"} +(27,1,1) = {" mC mC mC @@ -10528,24 +11668,6 @@ mC mC mC mC -zq -xW -Qk -bo -PH -dH -ZM -Cc -Qk -Qk -UM -Qk -Up -pO -ob -WT -dh -Or mC mC mC @@ -10583,15 +11705,21 @@ mC mC mC mC +NH +pk +NH +NH mC mC mC mC mC mC +NH +NH +NH +NH mC -"} -(40,1,1) = {" mC mC mC @@ -10646,29 +11774,13 @@ mC mC mC mC +"} +(28,1,1) = {" mC mC mC mC mC -zq -kJ -Qk -Zt -PV -yh -JM -je -tr -ti -ti -ED -mn -Of -du -Ld -cx -Or mC mC mC @@ -10713,13 +11825,12 @@ mC mC mC mC -"} -(41,1,1) = {" mC mC mC mC mC +rt mC mC mC @@ -10728,6 +11839,7 @@ mC mC mC mC +rt mC mC mC @@ -10774,24 +11886,6 @@ mC mC mC mC -zq -nE -Qk -iY -FB -VW -Bu -Za -Vy -sv -sv -sv -sv -JC -Uz -Or -Or -Or mC mC mC @@ -10803,6 +11897,8 @@ mC mC mC mC +"} +(29,1,1) = {" mC mC mC @@ -10836,8 +11932,6 @@ mC mC mC mC -"} -(42,1,1) = {" mC mC mC @@ -10848,6 +11942,8 @@ mC mC mC mC +HD +HD mC mC mC @@ -10857,6 +11953,7 @@ mC mC mC mC +rt mC mC mC @@ -10865,6 +11962,7 @@ mC mC mC mC +rt mC mC mC @@ -10897,24 +11995,6 @@ mC mC mC mC -zq -jI -Wd -kI -DB -nw -uF -zn -uF -Jz -cO -gN -jI -LZ -Nx -ez -DX -Or mC mC mC @@ -10940,6 +12020,8 @@ mC mC mC mC +"} +(30,1,1) = {" mC mC mC @@ -10959,8 +12041,6 @@ mC mC mC mC -"} -(43,1,1) = {" mC mC mC @@ -10978,16 +12058,25 @@ 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 @@ -10996,6 +12085,7 @@ mC mC mC mC +rt mC mC mC @@ -11020,24 +12110,6 @@ mC mC mC mC -wL -wL -wL -wL -wL -wL -Ba -jN -Ba -wL -wL -wL -wL -wL -wL -wL -VX -Or mC mC mC @@ -11071,6 +12143,8 @@ mC mC mC mC +"} +(31,1,1) = {" mC mC mC @@ -11082,8 +12156,6 @@ mC mC mC mC -"} -(44,1,1) = {" mC mC mC @@ -11107,13 +12179,27 @@ 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 @@ -11122,6 +12208,7 @@ mC mC mC mC +rt mC mC mC @@ -11143,24 +12230,6 @@ mC mC mC mC -wL -nO -HB -Kw -Ff -wL -sC -RV -vv -wL -oF -hU -nz -Oq -KA -wL -Or -Or mC mC mC @@ -11197,6 +12266,8 @@ mC mC mC mC +"} +(32,1,1) = {" mC mC mC @@ -11205,8 +12276,6 @@ mC mC mC mC -"} -(45,1,1) = {" mC mC mC @@ -11231,10 +12300,38 @@ 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 @@ -11266,22 +12363,6 @@ mC mC mC mC -wL -pm -Ck -ga -rZ -wL -xs -RV -sO -wL -xQ -ZE -yK -RC -ve -wL mC mC mC @@ -11308,6 +12389,8 @@ mC mC mC mC +"} +(33,1,1) = {" mC mC mC @@ -11328,8 +12411,6 @@ mC mC mC mC -"} -(46,1,1) = {" mC mC mC @@ -11341,12 +12422,46 @@ 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 @@ -11389,22 +12504,6 @@ mC mC mC mC -wL -Ry -Hi -BJ -zL -sk -Mk -ns -Xc -tB -Ev -Ps -Qt -jS -xn -wL mC mC mC @@ -11413,6 +12512,8 @@ mC mC mC mC +"} +(34,1,1) = {" mC mC mC @@ -11444,15 +12545,49 @@ 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 -"} -(47,1,1) = {" mC mC mC @@ -11500,6 +12635,8 @@ mC mC mC mC +"} +(35,1,1) = {" mC mC mC @@ -11512,22 +12649,6 @@ mC mC mC mC -wL -MO -BE -fV -tZ -ry -Hg -uv -wa -Td -iB -wR -gJ -ZO -CT -wL mC mC mC @@ -11546,6 +12667,47 @@ 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 @@ -11574,8 +12736,6 @@ mC mC mC mC -"} -(48,1,1) = {" mC mC mC @@ -11598,6 +12758,8 @@ mC mC mC mC +"} +(36,1,1) = {" mC mC mC @@ -11626,31 +12788,55 @@ 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 -wL -fI -Qf -Gp -GT -wL -vr -RV -Pa -wL -wL -wL -wL -wL -wL -wL mC mC mC @@ -11695,10 +12881,10 @@ mC mC mC mC +"} +(37,1,1) = {" mC mC -"} -(49,1,1) = {" mC mC mC @@ -11725,10 +12911,49 @@ 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 @@ -11758,22 +12983,6 @@ mC mC mC mC -wL -rV -cs -ZE -ZY -wL -EY -ZV -AM -sB -iw -rS -Zu -rS -KH -wL mC mC mC @@ -11795,6 +13004,8 @@ mC mC mC mC +"} +(38,1,1) = {" mC mC mC @@ -11820,10 +13031,47 @@ mC mC mC mC -"} -(50,1,1) = {" 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 @@ -11879,24 +13127,10 @@ mC mC mC mC +"} +(39,1,1) = {" mC mC -wL -jW -ai -Sc -xo -wL -uX -sI -Ne -pt -et -UU -UU -Tk -pG -wL mC mC mC @@ -11921,6 +13155,47 @@ mC mC mC mC +HD +HD +HD +HD +HD +hq +dr +rz +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 @@ -11943,8 +13218,6 @@ mC mC mC mC -"} -(51,1,1) = {" mC mC mC @@ -11977,6 +13250,8 @@ mC mC mC mC +"} +(40,1,1) = {" mC mC mC @@ -12003,23 +13278,48 @@ 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 -wL -wL -wL -wL -wL -wL -WV -LD -lk -wL -jU -MF -nT -dq -HL -wL mC mC mC @@ -12066,8 +13366,6 @@ mC mC mC mC -"} -(52,1,1) = {" mC mC mC @@ -12075,6 +13373,8 @@ mC mC mC mC +"} +(41,1,1) = {" mC mC mC @@ -12100,6 +13400,48 @@ 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 @@ -12128,21 +13470,6 @@ mC mC mC mC -wL -sL -Ob -uW -YR -gz -LD -fk -wL -Ru -lH -nz -LP -ar -wL mC mC mC @@ -12169,6 +13496,8 @@ mC mC mC mC +"} +(42,1,1) = {" mC mC mC @@ -12189,13 +13518,53 @@ mC mC mC mC -"} -(53,1,1) = {" 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 @@ -12241,31 +13610,6 @@ 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 @@ -12275,6 +13619,8 @@ mC mC mC mC +"} +(43,1,1) = {" mC mC mC @@ -12300,6 +13646,48 @@ 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 @@ -12312,8 +13700,6 @@ mC mC mC mC -"} -(54,1,1) = {" mC mC mC @@ -12356,6 +13742,8 @@ mC mC mC mC +"} +(44,1,1) = {" mC mC mC @@ -12363,32 +13751,6 @@ mC mC mC mC -nU -nU -dC -nU -cl -pV -wL -rj -nz -cc -YE -wL -vX -GK -mp -wL -vr -LD -GU -wL -NT -Nc -kP -LP -vn -wL mC mC mC @@ -12407,6 +13769,48 @@ 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 @@ -12435,8 +13839,6 @@ mC mC mC mC -"} -(55,1,1) = {" mC mC mC @@ -12463,6 +13865,8 @@ mC mC mC mC +"} +(45,1,1) = {" mC mC mC @@ -12486,34 +13890,54 @@ mC mC mC mC -nU -kg -wm -nU -WM -Df -wL -nz -ZE -cs -Rv -wL -kR -nK -qT -wL -HR -or -cg -wL -lW -cy -bI -Dz -Mz -wL 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 @@ -12558,14 +13982,14 @@ mC mC mC mC -"} -(56,1,1) = {" mC mC mC mC mC mC +"} +(46,1,1) = {" mC mC mC @@ -12592,6 +14016,52 @@ 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 @@ -12601,6 +14071,8 @@ mC mC mC mC +HD +HD mC mC mC @@ -12609,32 +14081,6 @@ mC mC mC mC -nU -IY -vV -tC -rn -lS -wL -uc -HG -HG -Bj -wL -eL -XB -AI -wL -Pz -PE -cg -wL -wH -Uo -zX -De -Hp -wL mC mC mC @@ -12665,6 +14111,8 @@ mC mC mC mC +"} +(47,1,1) = {" mC mC mC @@ -12681,8 +14129,6 @@ mC mC mC mC -"} -(57,1,1) = {" mC mC mC @@ -12693,6 +14139,53 @@ 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 @@ -12700,6 +14193,10 @@ mC mC mC mC +HD +HD +HD +HD mC mC mC @@ -12729,35 +14226,6 @@ mC mC mC mC -GM -GM -GM -GM -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 @@ -12766,6 +14234,8 @@ mC mC mC mC +"} +(48,1,1) = {" mC mC mC @@ -12793,10 +14263,63 @@ 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 @@ -12804,8 +14327,6 @@ mC mC mC mC -"} -(58,1,1) = {" mC mC mC @@ -12836,6 +14357,8 @@ mC mC mC mC +"} +(49,1,1) = {" mC mC mC @@ -12852,33 +14375,6 @@ mC mC mC mC -GM -YI -rE -GM -Si -ki -Yb -Oa -TW -wL -Qj -vX -vX -Xl -wL -HP -AY -kA -Yd -XI -ia -XI -Yd -Rt -QA -EI -Yd mC mC mC @@ -12890,6 +14386,63 @@ 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 @@ -12928,8 +14481,7 @@ mC mC mC "} -(59,1,1) = {" -mC +(50,1,1) = {" mC mC mC @@ -12957,6 +14509,60 @@ 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 @@ -12975,33 +14581,6 @@ mC mC mC mC -GM -nZ -oz -tH -sG -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 @@ -13024,6 +14603,8 @@ mC mC mC mC +"} +(51,1,1) = {" mC mC mC @@ -13050,10 +14631,60 @@ mC mC mC mC -"} -(60,1,1) = {" mC mC +HD +HD +HD +NK +it +JF +NK +Rg +NK +NK +NK +Ro +za +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 @@ -13095,36 +14726,11 @@ mC mC mC mC +"} +(52,1,1) = {" mC mC mC -GM -GM -GM -GM -Zx -Th -qs -Gq -LK -wL -bE -zv -mA -Qn -wL -ex -RN -GL -hG -cU -Kt -Ij -hG -Bs -MA -pl -Yd mC mC mC @@ -13150,6 +14756,57 @@ 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 @@ -13173,8 +14830,6 @@ mC mC mC mC -"} -(61,1,1) = {" mC mC mC @@ -13194,6 +14849,8 @@ mC mC mC mC +"} +(53,1,1) = {" mC mC mC @@ -13219,40 +14876,59 @@ mC mC mC mC -GM -GM -GM -gP -qH -nU -nU -nU -nU -gb -nU -wL -wL -VG -Bp -wL -wL -Yd -xs -OY -Yd -KW -zS -zS -Yd -iQ -jx -vT -Yd -Yd +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 -mC +aI +sO +aI +aI +aI +aI +aI +aI +aI +aI +HD +HD mC mC mC @@ -13297,7 +14973,7 @@ mC mC mC "} -(62,1,1) = {" +(54,1,1) = {" mC mC mC @@ -13326,6 +15002,56 @@ mC mC mC mC +HD +HD +HD +NK +NK +YL +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 @@ -13342,42 +15068,6 @@ mC mC mC mC -GM -Md -Zg -QR -MB -KV -nU -En -HU -yu -mL -eg -Eg -ms -Jh -QT -sX -fD -nI -RV -Yd -ks -ks -sr -kH -RV -dK -Yd -Yd -AR -dS -Sa -GM -GM -GM -GM mC mC mC @@ -13405,6 +15095,8 @@ mC mC mC mC +"} +(55,1,1) = {" mC mC mC @@ -13419,8 +15111,6 @@ mC mC mC mC -"} -(63,1,1) = {" mC mC mC @@ -13434,6 +15124,58 @@ mC mC mC mC +HD +HD +HD +HD +HD +hq +hq +hq +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 @@ -13465,42 +15207,6 @@ mC mC mC mC -lb -KZ -GM -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 -mQ -IA -wx -GM mC mC mC @@ -13512,6 +15218,8 @@ mC mC mC mC +"} +(56,1,1) = {" mC mC mC @@ -13539,11 +15247,62 @@ mC mC mC mC +HD +HD +HD +HD +HD +hq +qp +hq +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 -"} -(64,1,1) = {" mC mC mC @@ -13582,48 +15341,19 @@ mC mC mC mC +"} +(57,1,1) = {" +mC +mC +mC +mC +mC mC mC mC mC mC mC -GM -QL -GM -GS -nd -KV -nU -im -jM -JB -aH -JX -Lj -AU -ls -uy -sX -fD -nI -LD -Yd -ks -ks -ks -kH -DV -jx -Yr -jl -Ty -em -Xm -te -LO -KU -GM mC mC mC @@ -13639,6 +15369,65 @@ mC mC mC mC +HD +HD +HD +HD +HD +HD +hq +hq +hq +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 @@ -13665,8 +15454,6 @@ mC mC mC mC -"} -(65,1,1) = {" mC mC mC @@ -13677,6 +15464,8 @@ mC mC mC mC +"} +(58,1,1) = {" mC mC mC @@ -13702,6 +15491,63 @@ mC mC mC mC +HD +HD +HD +HD +HD +HD +HD +Ha +hq +hq +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 @@ -13711,42 +15557,6 @@ mC mC mC mC -GM -GM -GM -GS -Ni -JU -wL -wL -wL -SV -wL -wL -wL -YV -qZ -wL -wL -Yd -Ap -OY -Yd -Mt -Mt -Mt -Yd -tU -Yd -Yd -Yd -OC -zG -Zr -GM -GM -GM -GM mC mC mC @@ -13777,6 +15587,9 @@ mC mC mC mC +"} +(59,1,1) = {" +mC mC mC mC @@ -13788,8 +15601,6 @@ mC mC mC mC -"} -(66,1,1) = {" mC mC mC @@ -13803,6 +15614,63 @@ mC mC mC mC +HD +HD +HD +HD +HD +HD +HD +hq +hq +hq +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 @@ -13836,43 +15704,14 @@ mC mC mC mC -nU -cV -nU -ag -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 +"} +(60,1,1) = {" mC mC mC @@ -13897,8 +15736,64 @@ mC mC mC mC +HD +HD +HD +HD mC mC +HD +HD +HD +hq +qp +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 @@ -13911,8 +15806,6 @@ mC mC mC mC -"} -(67,1,1) = {" mC mC mC @@ -13940,6 +15833,8 @@ mC mC mC mC +"} +(61,1,1) = {" mC mC mC @@ -13959,42 +15854,69 @@ mC mC mC mC -nU -vZ -nU -Ip -wL -bL -CI -xi -Jl -wL -ST -eq -TA -He -wL -WW -Ty -lX -YC -ls -Sn -nM -Bx -XS -Cj -yg -Yd -cZ -Yd mC mC mC mC +HD +HD +HD +HD mC mC mC +HD +HD +HD +hq +hq +hq +hq +hq +hq +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 @@ -14035,13 +15957,7 @@ mC mC mC "} -(68,1,1) = {" -mC -mC -mC -mC -mC -mC +(62,1,1) = {" mC mC mC @@ -14064,10 +15980,65 @@ mC mC mC mC +HD +HD +HD +HD mC mC mC mC +HD +HD +HD +HD +hq +hq +hq +Ha +hq +YL +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 @@ -14082,35 +16053,6 @@ mC mC mC mC -nU -nU -nU -nU -wL -wL -gF -PA -oe -wL -DJ -AL -Lu -hA -wL -jd -Od -lx -Yd -rD -FN -rD -Yd -xy -np -sn -Yd -Yd -Yd mC mC mC @@ -14137,6 +16079,8 @@ mC mC mC mC +"} +(63,1,1) = {" mC mC mC @@ -14157,18 +16101,66 @@ mC mC mC mC -"} -(69,1,1) = {" mC mC +HD +HD mC mC mC mC mC mC +HD +HD +HD +HD +HD +HD +hq +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 @@ -14210,28 +16202,8 @@ 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 +"} +(64,1,1) = {" mC mC mC @@ -14263,6 +16235,52 @@ mC mC mC mC +HD +HD +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 @@ -14280,8 +16298,6 @@ mC mC mC mC -"} -(70,1,1) = {" mC mC mC @@ -14309,6 +16325,8 @@ mC mC mC mC +"} +(65,1,1) = {" mC mC mC @@ -14333,24 +16351,6 @@ mC mC mC mC -wL -hB -FU -Ka -wL -Jw -Ky -Ky -yj -wL -Uw -oR -YB -Rb -jC -Xk -Kz -Uw mC mC mC @@ -14359,6 +16359,51 @@ 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 @@ -14404,16 +16449,7 @@ mC mC mC "} -(71,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC +(66,1,1) = {" mC mC mC @@ -14444,6 +16480,54 @@ 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 @@ -14456,26 +16540,6 @@ 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 @@ -14507,6 +16571,8 @@ mC mC mC mC +"} +(67,1,1) = {" mC mC mC @@ -14526,8 +16592,6 @@ mC mC mC mC -"} -(72,1,1) = {" mC mC mC @@ -14540,6 +16604,53 @@ 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 @@ -14583,6 +16694,8 @@ mC mC mC mC +"} +(68,1,1) = {" mC mC mC @@ -14590,15 +16703,6 @@ mC mC mC mC -Uw -pF -Fa -pA -KJ -pA -Yv -jn -Uw mC mC mC @@ -14622,6 +16726,54 @@ 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 @@ -14649,8 +16801,6 @@ mC mC mC mC -"} -(73,1,1) = {" mC mC mC @@ -14667,6 +16817,8 @@ mC mC mC mC +"} +(69,1,1) = {" mC mC mC @@ -14697,6 +16849,54 @@ 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 @@ -14712,17 +16912,6 @@ mC mC mC mC -Uw -Uw -UE -LL -pA -KJ -pA -LL -mT -Uw -Uw mC mC mC @@ -14751,6 +16940,8 @@ mC mC mC mC +"} +(70,1,1) = {" mC mC mC @@ -14772,8 +16963,6 @@ mC mC mC mC -"} -(74,1,1) = {" mC mC mC @@ -14784,6 +16973,53 @@ 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 @@ -14827,27 +17063,14 @@ mC mC mC mC +"} +(71,1,1) = {" mC mC mC mC mC mC -Uw -Uw -Uw -iV -LL -LL -pA -KJ -pA -LL -LL -yV -Uw -Uw -Uw mC mC mC @@ -14874,6 +17097,51 @@ 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 @@ -14895,8 +17163,6 @@ mC mC mC mC -"} -(75,1,1) = {" mC mC mC @@ -14920,6 +17186,8 @@ mC mC mC mC +"} +(72,1,1) = {" mC mC mC @@ -14952,26 +17220,53 @@ 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 -Uw -Uw -gf -mg -GQ -Ko -Xn -pA -gs -pA -Ko -QD -Wz -xm -Hx -Uw -Uw mC mC mC @@ -15014,12 +17309,12 @@ mC mC mC mC +"} +(73,1,1) = {" mC mC mC mC -"} -(76,1,1) = {" mC mC mC @@ -15049,6 +17344,50 @@ 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 @@ -15077,25 +17416,6 @@ mC mC mC mC -Uw -Uw -gr -QY -QY -EH -PG -PG -ey -Jo -fj -VR -VR -DA -RG -RG -Ku -Uw -Uw mC mC mC @@ -15112,6 +17432,8 @@ mC mC mC mC +"} +(74,1,1) = {" mC mC mC @@ -15141,13 +17463,54 @@ mC mC mC mC -"} -(77,1,1) = {" 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 @@ -15192,6 +17555,8 @@ mC mC mC mC +"} +(75,1,1) = {" mC mC mC @@ -15200,25 +17565,6 @@ 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 @@ -15246,6 +17592,48 @@ 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 @@ -15264,8 +17652,6 @@ mC mC mC mC -"} -(78,1,1) = {" mC mC mC @@ -15292,6 +17678,8 @@ mC mC mC mC +"} +(76,1,1) = {" mC mC mC @@ -15323,25 +17711,53 @@ mC mC mC mC +HD +HD +HD +HD +HD +HD Uw -Am -LL -LL -QD -Ze -iG -iG -lK -FM -iF -iG -iG -Wt -cW -LL -LL -dt +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 @@ -15385,10 +17801,10 @@ mC mC mC mC +"} +(77,1,1) = {" mC mC -"} -(79,1,1) = {" mC mC mC @@ -15417,6 +17833,54 @@ 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 @@ -15446,25 +17910,6 @@ 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 @@ -15479,6 +17924,8 @@ mC mC mC mC +"} +(78,1,1) = {" mC mC mC @@ -15510,9 +17957,54 @@ mC mC mC mC -"} -(80,1,1) = {" +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 +Lh +Lh +Lh +Lh +fh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +HD +HD +HD +HD +HD +HD mC mC mC @@ -15555,6 +18047,8 @@ mC mC mC mC +"} +(79,1,1) = {" mC mC mC @@ -15569,25 +18063,6 @@ 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 @@ -15607,7 +18082,52 @@ 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 +Lh +Lh +Lh +Le +uI +Bc +mW +xc +Lh +BO +Ia +Lh +zD +Ff +By +Lh +HD +HD +HD +HD +HD +HD mC mC mC @@ -15633,8 +18153,6 @@ mC mC mC mC -"} -(81,1,1) = {" mC mC mC @@ -15652,6 +18170,8 @@ mC mC mC mC +"} +(80,1,1) = {" mC mC mC @@ -15685,32 +18205,55 @@ 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 +uJ +Lh +Zl +fZ +Gv +SS +bW +Lh +LJ +Mk +Lh +cu +xc +By +Lh +HD +HD +HD +HD +HD 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 @@ -15750,14 +18293,14 @@ mC mC mC mC +"} +(81,1,1) = {" mC mC mC mC mC mC -"} -(82,1,1) = {" mC mC mC @@ -15785,19 +18328,51 @@ 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 +PY +wW +fZ +No +SS +cX +WJ +cX +cX +oW +Qr +xc +Lh +Lh +em +HD +HD +HD +HD mC mC mC @@ -15815,25 +18390,6 @@ 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 @@ -15860,6 +18416,8 @@ mC mC mC mC +"} +(82,1,1) = {" mC mC mC @@ -15879,8 +18437,6 @@ mC mC mC mC -"} -(83,1,1) = {" mC mC mC @@ -15894,16 +18450,53 @@ 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 +DI +XV +Lh +gg +Do +RM +Do +Do +Lh +dL +wE +Lh +oQ +ob +qW +Bo +Lh +HD +HD +HD +HD +HD mC mC mC @@ -15938,25 +18531,6 @@ 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 @@ -15965,6 +18539,8 @@ mC mC mC mC +"} +(83,1,1) = {" mC mC mC @@ -15996,14 +18572,14 @@ mC mC mC mC +HD +HD mC mC mC mC mC mC -"} -(84,1,1) = {" mC mC mC @@ -16012,9 +18588,38 @@ mC mC mC mC +NH +rt +em +HD +HD +HD +HD +HD +HD +wL +Lh +Lh +Lh +Lh +qW +qW +qW +Lh +Lh +Lh +Lh +Lh +IT +ob +qW +Me +qW mC mC mC +HD +HD mC mC mC @@ -16057,29 +18662,12 @@ mC mC mC mC +"} +(84,1,1) = {" 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 @@ -16123,16 +18711,39 @@ mC mC mC mC +NH mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD mC -"} -(85,1,1) = {" mC mC +HD +HD +HD +HD +Lh +SO +Te +lt +Nd +qW mC mC mC mC +HD +HD mC mC mC @@ -16174,6 +18785,8 @@ mC mC mC mC +"} +(85,1,1) = {" mC mC mC @@ -16184,25 +18797,6 @@ 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 @@ -16242,16 +18836,37 @@ mC mC mC mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD mC mC mC mC mC +HD +HD +HD +Lh +Fn +qW +Lh +Lh +Lh +HD mC -"} -(86,1,1) = {" mC mC +HD +HD mC mC mC @@ -16293,6 +18908,8 @@ mC mC mC mC +"} +(86,1,1) = {" mC mC mC @@ -16307,25 +18924,6 @@ 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 @@ -16359,20 +18957,42 @@ mC mC mC mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD mC mC mC mC mC +HD +HD +HD +Lh +gU +Gl +Lh +HD +HD +HD mC mC mC mC +HD mC mC mC -"} -(87,1,1) = {" mC mC mC @@ -16411,6 +19031,8 @@ mC mC mC mC +"} +(87,1,1) = {" mC mC mC @@ -16431,23 +19053,6 @@ mC mC mC mC -Uw -Uw -Hx -jk -QK -Ko -hx -Qe -cC -cC -lz -Oj -EM -jk -zp -Uw -Uw mC mC mC @@ -16474,13 +19079,36 @@ mC mC mC mC +HD +HD +HD +HD +HD mC mC mC +HD +HD +HD +HD +HD +HD +HD mC mC mC mC +HD +HD +HD +Lh +qW +qW +Lh +HD +HD +HD +HD mC mC mC @@ -16494,8 +19122,6 @@ mC mC mC mC -"} -(88,1,1) = {" mC mC mC @@ -16528,6 +19154,8 @@ mC mC mC mC +"} +(88,1,1) = {" mC mC mC @@ -16555,21 +19183,6 @@ mC mC mC mC -Uw -Uw -Uw -mG -Ac -ID -wr -cC -Ud -ME -oV -KD -Uw -Uw -Uw mC mC mC @@ -16588,18 +19201,37 @@ mC mC mC mC +HD +HD +HD +HD +HD +HD mC mC mC mC mC +HD +HD +HD +HD +HD mC mC mC mC +HD +HD +HD mC mC mC +HD +HD +HD +HD +HD mC mC mC @@ -16617,8 +19249,6 @@ mC mC mC mC -"} -(89,1,1) = {" mC mC mC @@ -16647,6 +19277,8 @@ mC mC mC mC +"} +(89,1,1) = {" mC mC mC @@ -16680,17 +19312,6 @@ mC mC mC mC -Uw -Uw -LI -lP -py -NX -rF -pY -tK -Uw -Uw mC mC mC @@ -16705,18 +19326,35 @@ mC mC mC mC +HD +HD +HD mC mC mC mC mC +HD +HD +HD +HD +HD +HD mC mC mC +HD +HD +Ki +HD mC mC mC mC +HD +HD +HD +HD mC mC mC @@ -16740,8 +19378,6 @@ mC mC mC mC -"} -(90,1,1) = {" mC mC mC @@ -16764,6 +19400,8 @@ mC mC mC mC +"} +(90,1,1) = {" mC mC mC @@ -16804,15 +19442,6 @@ mC mC mC mC -Uw -Uw -Uw -Uw -Uw -Uw -Uw -Uw -Uw mC mC mC @@ -16821,14 +19450,27 @@ mC mC mC mC +HD +HD mC mC mC mC +HD +HD +HD +HD +HD +HD +HD +HD mC mC mC mC +HD +HD +HD mC mC mC @@ -16863,8 +19505,6 @@ mC mC mC mC -"} -(91,1,1) = {" mC mC mC @@ -16883,6 +19523,8 @@ mC mC mC mC +"} +(91,1,1) = {" mC mC mC @@ -16937,6 +19579,11 @@ mC mC mC mC +HD +HD +HD +HD +HD mC mC mC @@ -16945,6 +19592,9 @@ mC mC mC mC +HD +HD +HD mC mC mC @@ -16986,8 +19636,6 @@ mC mC mC mC -"} -(92,1,1) = {" mC mC mC @@ -16998,6 +19646,8 @@ mC mC mC mC +"} +(92,1,1) = {" mC mC mC @@ -17052,6 +19702,10 @@ mC mC mC mC +HD +HD +HD +HD mC mC mC @@ -17062,6 +19716,8 @@ mC mC mC mC +HD +HD mC mC mC @@ -17109,12 +19765,12 @@ mC mC mC mC -"} -(93,1,1) = {" mC mC mC mC +"} +(93,1,1) = {" mC mC mC @@ -17169,6 +19825,10 @@ mC mC mC mC +HD +HD +HD +HD mC mC mC @@ -17288,9 +19948,9 @@ mC mC mC mC -mC -mC -mC +HD +HD +HD mC mC mC @@ -17410,10 +20070,10 @@ mC mC mC mC -mC -mC -mC -mC +HD +HD +HD +HD mC mC mC @@ -17533,10 +20193,10 @@ mC mC mC mC -mC -mC -mC -mC +HD +HD +HD +HD mC mC mC @@ -17656,9 +20316,9 @@ mC mC mC mC -mC -mC -mC +HD +HD +HD mC mC mC @@ -17779,9 +20439,9 @@ mC mC mC mC -mC -mC -mC +HD +HD +HD mC mC mC @@ -17902,7 +20562,7 @@ mC mC mC mC -mC +HD mC mC mC diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index e127c600d71e..5af450ce3e0d 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -580,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" = ( @@ -871,6 +868,7 @@ /obj/item/radio/intercom/directional/north{ pixel_x = -3 }, +/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech, /area/outpost/security/armory) "dv" = ( @@ -998,7 +996,7 @@ /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, @@ -1726,6 +1724,7 @@ /obj/effect/turf_decal/industrial/caution{ pixel_x = 17 }, +/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech/grid, /area/outpost/security/armory) "gx" = ( @@ -2097,6 +2096,7 @@ /obj/effect/turf_decal/techfloor{ dir = 8 }, +/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech/grid, /area/outpost/security/armory) "hW" = ( @@ -3253,7 +3253,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, @@ -3514,6 +3514,7 @@ req_access_txt = "101"; pixel_x = -3 }, +/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech, /area/outpost/security/armory) "mP" = ( @@ -3669,6 +3670,7 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech/grid, /area/outpost/security/armory) "nz" = ( @@ -6619,7 +6621,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, @@ -9282,7 +9284,7 @@ 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, @@ -10241,6 +10243,7 @@ dir = 4 }, /obj/machinery/airalarm/directional/east, +/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech, /area/outpost/security/armory) "JK" = ( @@ -10712,6 +10715,7 @@ dir = 8 }, /obj/machinery/light/directional/west, +/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech, /area/outpost/security/armory) "Lv" = ( @@ -11618,13 +11622,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" = ( @@ -12929,7 +12933,6 @@ /obj/structure/closet/crate/trashcart/laundry, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/maintenance/two, -/obj/effect/spawner/lootdrop/lizardboots, /obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, /obj/structure/grille/broken, /obj/effect/turf_decal/box/white, diff --git a/_maps/outpost/nanotrasen_ice.dmm b/_maps/outpost/nanotrasen_ice.dmm new file mode 100644 index 000000000000..4a138d21d421 --- /dev/null +++ b/_maps/outpost/nanotrasen_ice.dmm @@ -0,0 +1,16186 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"am" = ( +/obj/machinery/camera{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"an" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"au" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"aC" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/item/trash/can{ + pixel_x = 6; + pixel_y = 2 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"aM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + pixel_y = -28; + id = "ice_ERT_maint"; + name = "Maintenance Shield"; + dir = 1; + pixel_x = 3; + req_one_access_txt = "101" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/security) +"aN" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/outpost/external) +"aQ" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"aR" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/external/glass, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "ice_exterior_airlock" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/fore) +"aU" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/machinery/door/window/brigdoor/eastleft, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"aW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"aX" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/curtain, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"aY" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"bi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/button/door{ + pixel_y = -28; + id = "ice_ERT_maint"; + name = "Maintenance Shield"; + dir = 1; + pixel_x = -3; + req_one_access_txt = "101" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"bj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/port) +"bv" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/security) +"bz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer2{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"bG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"bJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"bL" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/outpost/maintenance/port) +"bP" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"bU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"bW" = ( +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"cd" = ( +/obj/structure/table/wood/reinforced, +/obj/item/storage/fancy/candle_box{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_x = -6; + pixel_y = -2 + }, +/turf/open/floor/wood/walnut, +/area/outpost/crew/lounge) +"cf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/transparent/neutral/arrow_ccw, +/obj/item/trash/can, +/obj/structure/closet/crate/trashcart, +/obj/item/trash/sosjerky, +/obj/item/trash/candy, +/obj/item/storage/bag/trash, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"cm" = ( +/obj/machinery/photocopier, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"cr" = ( +/turf/open/floor/plating/ice/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/external) +"ct" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/machinery/camera{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"cx" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"cB" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"cC" = ( +/turf/closed/indestructible/rock/schist, +/area/outpost/external) +"cL" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"cO" = ( +/obj/machinery/door/airlock/grunge{ + name = "Shop" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "ice_shop1_window" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"cT" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/kirbyplants/dead{ + pixel_y = 3 + }, +/obj/item/trash/sosjerky{ + pixel_x = -6 + }, +/obj/item/trash/energybar{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"cU" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/west{ + pixel_y = -6 + }, +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"da" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/machinery/door/window/brigdoor/westright, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"de" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/item/radio/intercom/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"dg" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/item/trash/candy{ + pixel_x = 4 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"dh" = ( +/obj/machinery/door/poddoor/ert{ + dir = 8; + id = "ice_exterior_port" + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/exterior) +"dk" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"do" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 1; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"dp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants{ + icon_state = "plant-14" + }, +/obj/structure/sign/poster/official/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"dq" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"dr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/transparent/neutral/arrow_ccw, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"dt" = ( +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/external) +"du" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/port) +"dG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/closet/crate, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"dI" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"dJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/outpost/maintenance/fore) +"dL" = ( +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/closet/crate, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"dM" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"dQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"dV" = ( +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"dY" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"dZ" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/light/small/directional/east{ + bulb_power = 0.4 + }, +/turf/open/floor/plating/grass, +/area/outpost/maintenance/fore) +"eg" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"el" = ( +/obj/structure/window/reinforced/spawner{ + dir = 4 + }, +/obj/structure/chair, +/obj/effect/turf_decal/industrial/outline/red, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"es" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/shop) +"et" = ( +/obj/machinery/door/airlock/grunge{ + name = "Shop" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ice_shop2_window" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"ez" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"eG" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"eI" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"eM" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/door/poddoor/ert{ + dir = 8; + id = "ice_ERT_bay" + }, +/obj/structure/fans/tiny/invisible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"eT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"fe" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"fk" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/camera{ + dir = 5 + }, +/obj/machinery/newscaster/security_unit/directional/west, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"fq" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"fx" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"fC" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/displaycase/forsale{ + density = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"fE" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"fI" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/caution{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/port) +"fQ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"fT" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/starboard) +"fW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/security) +"ga" = ( +/obj/structure/chair/comfy/brown{ + dir = 1; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/lounge) +"gs" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ice_sec1_window" + }, +/turf/open/floor/plating, +/area/outpost/security) +"gv" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/light/dim/directional/north, +/obj/structure/chair/office, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"gB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/table/reinforced, +/obj/machinery/newscaster/directional/south, +/obj/item/newspaper, +/obj/machinery/camera{ + dir = 4 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"gG" = ( +/obj/machinery/computer/security{ + icon_state = "computer-right" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"gH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fireplace{ + dir = 4; + pixel_y = 16 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30" + }, +/turf/open/floor/concrete/tiles, +/area/outpost/crew/bar) +"gI" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22"; + pixel_x = -7; + pixel_y = 3 + }, +/obj/machinery/camera{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"gO" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/three, +/obj/structure/sign/poster/retro/random{ + pixel_x = -32 + }, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"gX" = ( +/obj/structure/frame/machine, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/cable_coil/red, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"hc" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/item/rack_parts, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"he" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/modular_computer/console/preset/command{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"ho" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4; + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/camera{ + dir = 8 + }, +/turf/open/floor/concrete/tiles, +/area/outpost/crew/lounge) +"hz" = ( +/obj/structure/chair{ + dir = 4; + pixel_x = 4 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 5 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"hG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -6 + }, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"hJ" = ( +/obj/structure/chair/comfy/brown{ + dir = 4; + pixel_x = -4 + }, +/obj/machinery/light/dim/directional/west{ + bulb_power = 0.7 + }, +/turf/open/floor/wood/walnut, +/area/outpost/crew/lounge) +"hL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"hM" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"hU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"hV" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer2{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"if" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"ig" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"ij" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/port) +"im" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 8; + piping_layer = 2 + }, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"ip" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-1" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"is" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/conveyor_switch/oneway{ + pixel_x = 6; + pixel_y = 12; + id = "smelter1" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"iw" = ( +/obj/machinery/vending/boozeomat/syndicate_access, +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bar) +"iA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 9 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"iF" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/spawner/lootdrop/maintenance/four, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"iH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/girder, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/maintenance/starboard) +"iO" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/crew/bathroom) +"iP" = ( +/obj/structure/frame/computer{ + dir = 8; + pixel_x = 7; + anchored = 1 + }, +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "foam_plating" + }, +/area/outpost/maintenance/fore) +"iR" = ( +/obj/structure/closet/secure_closet/ertMed{ + anchored = 1 + }, +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/window/reinforced/spawner{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/southleft{ + req_one_access_txt = "103" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/security/armory) +"jh" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"ji" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"jj" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/structure/rack, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/starboard) +"jk" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 13; + pixel_y = 1 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"jl" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/wrapping{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"jq" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"jH" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/item/radio/intercom/directional/north, +/obj/item/storage/secure/safe{ + dir = 4; + pixel_x = 32 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"jI" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/machinery/light/small/directional/east, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"jL" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"ke" = ( +/turf/closed/wall/r_wall/rust, +/area/outpost/maintenance/port) +"kj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/phone, +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"kn" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"kv" = ( +/obj/machinery/telecomms/relay, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"kG" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/glass{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"kK" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "smelter2" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"kL" = ( +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/obj/item/trash/raisins{ + pixel_y = 7 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"kM" = ( +/obj/machinery/light/small/directional/south{ + pixel_x = -6 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"kX" = ( +/obj/effect/turf_decal/siding/white, +/obj/machinery/light/dim/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"kZ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"la" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plating{ + icon_state = "foam_plating" + }, +/area/outpost/maintenance/starboard) +"lb" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"lc" = ( +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/cryo) +"li" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"lj" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"ll" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/item/radio/intercom/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"lo" = ( +/obj/effect/turf_decal/siding/white/end{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/cryo) +"lp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"ls" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/sign/poster/retro/random{ + pixel_x = 32 + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/port) +"lv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms/shop) +"lw" = ( +/obj/structure/table/wood/reinforced, +/obj/machinery/jukebox/boombox, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"ly" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"lF" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"lK" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/item/light/bulb{ + pixel_y = 2 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"lR" = ( +/obj/structure/table/reinforced, +/obj/item/toy/cards/deck{ + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -7; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"lU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"lY" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"lZ" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/vending/cigarette, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"mk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"mm" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"my" = ( +/obj/machinery/camera{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"mz" = ( +/obj/effect/decal/cleanable/garbage{ + pixel_x = 8; + pixel_y = -6 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"mB" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "ice_stool_2"; + name = "Stool Lock"; + pixel_y = 28; + pixel_x = -4; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"mC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"mE" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"mF" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/structure/sign/poster/official/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"mK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"mM" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/rack, +/obj/machinery/airalarm/directional/west, +/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/stack/sheet/mineral/wood, +/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/stack/sheet/mineral/wood, +/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/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/lighter/greyscale, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bar) +"mO" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"mP" = ( +/obj/machinery/power/rtg/geothermal, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"mS" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/door/airlock{ + id_tag = "ice_stool_2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bathroom) +"mV" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"na" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "smelter1" + }, +/obj/structure/sign/poster/official/miners{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"ng" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"nn" = ( +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/dark, +/area/outpost/security) +"nv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"ny" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/door/airlock/mining{ + dir = 8; + name = "Smeltery" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo/smeltery) +"nA" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/caution{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/port) +"nB" = ( +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/power/smes/magical{ + name = "power storage unit"; + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit." + }, +/obj/structure/cable, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/starboard) +"nE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer/prisoner/management{ + icon_state = "computer-right" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"nF" = ( +/obj/structure/table/reinforced, +/obj/item/folder/red{ + pixel_x = -16 + }, +/obj/item/folder/red{ + pixel_y = 2; + pixel_x = -16 + }, +/obj/item/stamp/hos{ + pixel_y = 3; + pixel_x = -15 + }, +/obj/machinery/recharger, +/obj/machinery/camera{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"nG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"nH" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"nK" = ( +/obj/structure/flora/rock/icy, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"nL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2, +/turf/closed/indestructible/rock/schist, +/area/outpost/external) +"nN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/transparent/neutral/warning, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"nS" = ( +/obj/item/reagent_containers/food/drinks/beer{ + pixel_y = 10; + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/ale{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/snacks/deadmouse{ + pixel_y = 2 + }, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"nU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer/secure_data{ + icon_state = "computer-left" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"nW" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"nZ" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"od" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/poddoor/ert{ + dir = 8; + id = "ice_ERT_bay" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"oe" = ( +/obj/structure/table/wood/reinforced, +/obj/item/binoculars{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/binoculars{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/binoculars{ + pixel_x = 3 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"oi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/frame/computer/retro, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/outpost/maintenance/starboard) +"oj" = ( +/obj/machinery/cryopod, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/crew/cryo) +"om" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/mineral/processing_unit{ + output_dir = 4; + input_dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"oq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/trash/candy, +/obj/item/trash/sosjerky{ + pixel_x = 8; + pixel_y = 12 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/port) +"ot" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -13; + pixel_y = -8 + }, +/obj/effect/decal/cleanable/generic, +/obj/structure/railing/corner{ + dir = 1; + layer = 4.1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"ov" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/engineering/atmospherics) +"oz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/photocopier, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"oA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"oF" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms/shop) +"oI" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/starboard) +"oK" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"oY" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/west{ + pixel_y = -6 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"pa" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/starboard) +"pi" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"pl" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"pm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2, +/turf/closed/indestructible/reinforced, +/area/outpost/engineering/atmospherics) +"pu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"pv" = ( +/obj/machinery/button/door{ + id = "ice_bar_window"; + name = "Window Shutters"; + pixel_y = 28; + pixel_x = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 9 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"pw" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"pA" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"pC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"pJ" = ( +/obj/structure/flora/rock/pile/icy, +/obj/machinery/camera{ + dir = 9 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"qa" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"qh" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"qm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"qn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/bin, +/obj/machinery/firealarm/directional/east, +/obj/item/trash/energybar, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"qs" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/borderfloor/full, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/starboard) +"qw" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_y = 10; + pixel_x = -4 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/obj/item/toy/cards/deck{ + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"qx" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/rack_parts{ + pixel_y = 3; + pixel_x = -2 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"qA" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1; + req_one_access_txt = "101" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/port) +"qD" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/grunge{ + name = "Cryogenics" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/cryo) +"qE" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ice_sec2_window" + }, +/turf/open/floor/plating, +/area/outpost/security/checkpoint) +"qI" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/structure/sign/poster/ripped{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"qK" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/machinery/camera{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"qO" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/maintenance, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/starboard) +"qR" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "smelter1" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"qY" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock{ + dir = 4; + name = "Bar" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bar) +"qZ" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"rc" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/shop) +"re" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/item/trash/plate{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/trash/sosjerky{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/trash/energybar{ + pixel_x = -4; + pixel_y = -7 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/starboard) +"rv" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/mineral/unloading_machine, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo/smeltery) +"rA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sink/kitchen{ + pixel_y = 12 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"rD" = ( +/obj/machinery/light/small/directional/south{ + pixel_x = 6 + }, +/obj/machinery/elevator_call_button{ + pixel_y = -25; + dir = 1; + pixel_x = -5 + }, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"rF" = ( +/obj/effect/turf_decal/siding/white/end{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"rG" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + piping_layer = 2 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"rI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_y = 9; + pixel_x = 6 + }, +/obj/item/folder/documents{ + pixel_x = -20 + }, +/obj/item/stamp/hos{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/machinery/button/door{ + id = "ice_sec2_window"; + name = "Window Shutters"; + pixel_x = -6; + req_one_access_txt = "101" + }, +/obj/machinery/button/door{ + id = "ice_exterior_starboard"; + name = "Exterior Door"; + pixel_x = 6; + req_one_access_txt = "101" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"rL" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"rM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"rS" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/outpost/maintenance/starboard) +"rU" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/door/airlock{ + id_tag = "ice_stool_1" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bathroom) +"rY" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/outpost/maintenance/starboard) +"sg" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/fore) +"sh" = ( +/obj/structure/railing, +/obj/item/grown/log/tree{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/item/grown/log/tree{ + pixel_y = 10 + }, +/obj/item/grown/log/tree{ + pixel_x = 7; + pixel_y = 5 + }, +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/outpost/exterior) +"sj" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/obj/item/trash/sosjerky{ + pixel_y = 12 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"sq" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/sign/warning/coldtemp{ + pixel_x = -32 + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"su" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"sx" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"sz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/filingcabinet/double/grey, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"sA" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 10 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = -16 + }, +/obj/machinery/button/door{ + id = "ice_exterior_airlock"; + name = "Exterior Shutters"; + pixel_x = 26; + req_one_access_txt = "101"; + dir = 8; + pixel_y = 6 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"sC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/shop) +"sG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/item/kirbyplants{ + icon_state = "plant-21"; + pixel_y = 13 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"sH" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"sI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"tb" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"td" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/mineral/processing_unit_console{ + machinedir = 8; + output_dir = 1; + pixel_x = 32 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"tk" = ( +/obj/machinery/camera{ + dir = 1; + pixel_x = 12 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"tl" = ( +/obj/structure/chair, +/obj/effect/turf_decal/industrial/outline/red, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"tn" = ( +/obj/item/trash/candy{ + pixel_x = 12 + }, +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"tr" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"tw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"tx" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"tC" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"tD" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"tI" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/camera, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"tJ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"tM" = ( +/obj/machinery/mineral/unloading_machine, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo/smeltery) +"tO" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"tR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 8 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"tS" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/door/poddoor/ert, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/maintenance/port) +"tU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/starboard) +"ua" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/outpost/maintenance/starboard) +"uc" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/external) +"uf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp/green{ + pixel_y = 3 + }, +/obj/structure/sign/poster/retro/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/maintenance/starboard) +"uq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 6 + }, +/obj/machinery/holopad/emergency/bar, +/turf/open/floor/concrete/tiles, +/area/outpost/crew/bar) +"ur" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"us" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"uu" = ( +/obj/structure/table/wood, +/obj/item/trash/tray, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"uy" = ( +/obj/effect/turf_decal/siding/white, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/machinery/light/dim/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"uA" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/handcuffs{ + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade/teargas{ + pixel_x = -16; + pixel_y = 3 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/armory) +"uC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/light/small/directional/west{ + bulb_power = 0.55 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/crew/cryo) +"uD" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/light/broken/directional/north, +/obj/structure/chair/office, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"uE" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/firealarm/directional/east, +/obj/structure/sign/poster/retro/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/engineering/atmospherics) +"uH" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"uI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/oil, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/outpost/maintenance/starboard) +"uN" = ( +/obj/structure/rack, +/obj/item/pickaxe/rusted, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/head/hardhat/red, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/outpost/maintenance/fore) +"uO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 6 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"uT" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"uX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"uY" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"va" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/obj/item/trash/chips{ + pixel_y = 7; + pixel_x = 4 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"vc" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"vg" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + dir = 4; + req_one_access_txt = "101" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/fore) +"vn" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/outpost/maintenance/fore) +"vu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white, +/obj/structure/closet/crate/secure/hydroponics, +/obj/item/reagent_containers/food/snacks/grown/grass, +/obj/item/reagent_containers/food/snacks/grown/grass, +/obj/item/grown/sunflower, +/obj/item/reagent_containers/food/snacks/grown/grass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"vy" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"vA" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"vB" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/observer_start, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"vC" = ( +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"vD" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"vI" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"vP" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/transparent/neutral/warning, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"vW" = ( +/obj/machinery/door/airlock/grunge, +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/maintenance/port) +"vZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 5 + }, +/turf/open/floor/concrete/tiles, +/area/outpost/crew/bar) +"wd" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"wf" = ( +/obj/structure/flora/stump, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"wi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"wl" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"wv" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bar) +"wC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/engineering/atmospherics) +"wD" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/spider/stickyweb, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"wH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"wL" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"wW" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"xc" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"xf" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"xg" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"xh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/telecomms/allinone/indestructable, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"xj" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"xn" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"xp" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/item/trash/raisins{ + pixel_x = -4; + pixel_y = 2 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"xr" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/outpost/engineering/atmospherics) +"xs" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"xv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/decal/cleanable/wrapping, +/obj/structure/frame/computer/retro{ + dir = 8; + pixel_x = 7; + anchored = 1 + }, +/obj/item/radio/intercom/directional/south, +/obj/structure/sign/poster/retro/we_watch{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/starboard) +"xG" = ( +/obj/effect/turf_decal/siding/white/corner, +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"xK" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"xM" = ( +/obj/effect/turf_decal/siding/white/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer/cryopod/directional/north, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/cryo) +"xN" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"yd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/transparent/neutral/arrow_ccw, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"yi" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/item/reagent_containers/glass/bucket, +/obj/item/cultivator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"yk" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/item/trash/candy{ + pixel_x = -2 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"yp" = ( +/obj/structure/bed{ + icon_state = "dirty_mattress" + }, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"yq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/newscaster/security_unit/directional/east, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"yu" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/cryo) +"yw" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"yG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sink/kitchen{ + pixel_y = 12 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"yM" = ( +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/sign/poster/official/work_for_a_future{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"yR" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/crew/bar) +"zc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table_frame, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/chem_pile, +/obj/structure/sign/poster/retro/random{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"zn" = ( +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"zw" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"zA" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "ice_stool_1"; + name = "Stool Lock"; + pixel_y = 28; + pixel_x = -4; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"zB" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/sign/directions/supply{ + dir = 1; + pixel_y = 8; + pixel_x = 32 + }, +/obj/structure/sign/directions/service{ + dir = 1; + pixel_x = 32 + }, +/obj/structure/sign/directions/security{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"zH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 4 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"zI" = ( +/obj/machinery/newscaster/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken6" + }, +/area/outpost/crew/bar) +"zO" = ( +/obj/structure/bed{ + icon_state = "dirty_mattress" + }, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/starboard) +"zQ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"zU" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small/directional/south{ + bulb_power = 0.5; + brightness = 3 + }, +/obj/item/trash/tray, +/obj/item/stack/cable_coil/cut/red, +/obj/item/computer_hardware/hard_drive/small, +/obj/item/computer_hardware/battery{ + pixel_y = 6; + pixel_x = -4 + }, +/obj/item/computer_hardware/network_card{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/outpost/maintenance/starboard) +"zY" = ( +/turf/closed/wall/r_wall/rust, +/area/outpost/maintenance/starboard) +"Ah" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Aj" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"Ak" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/cargo/smeltery) +"An" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"At" = ( +/obj/machinery/power/rtg/geothermal, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Au" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"Ay" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"AA" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"AC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating{ + icon_state = "foam_plating" + }, +/area/outpost/maintenance/starboard) +"AG" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/maintenance{ + dir = 4; + req_one_access_txt = "101" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/fore) +"AS" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/vacant_rooms/shop) +"AT" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"AV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/transparent/neutral/arrow_ccw, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"AX" = ( +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Ba" = ( +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/outpost/exterior) +"Bd" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Bh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Bj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ice_shop2_window"; + dir = 8 + }, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/shop) +"Bm" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/airalarm/directional/south, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/armory) +"Bu" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "ice_shop2_window"; + name = "Shop Shutters"; + dir = 1; + pixel_y = 3; + pixel_x = 3 + }, +/obj/item/paper_bin{ + pixel_x = -11 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"Bv" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/starboard) +"Bz" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"BC" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"BL" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"BM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken6" + }, +/area/outpost/crew/bar) +"BV" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/borderfloor, +/obj/machinery/door/window/brigdoor/southright, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"BX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/stack/rods/ten{ + pixel_x = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plating, +/area/outpost/maintenance/port) +"BZ" = ( +/mob/living/simple_animal/pet/cat{ + desc = "A little scoundrel." + }, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Cc" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/fore) +"Cf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/trash/raisins, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"Ch" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/transparent/neutral/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/camera{ + dir = 9 + }, +/obj/structure/sign/poster/retro/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"Cq" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Cu" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Cy" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"CF" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"CI" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/mug/coco{ + pixel_y = 9; + pixel_x = 5 + }, +/obj/item/cigbutt{ + pixel_y = 13; + pixel_x = -6 + }, +/obj/item/reagent_containers/food/snacks/ration/side/crackers{ + pixel_x = -7 + }, +/obj/item/trash/syndi_cakes{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/item/reagent_containers/food/snacks/ration/side/crackers{ + pixel_x = -7; + pixel_y = -3 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Dl" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/curtain/cloth/grey, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"Dn" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/outpost/maintenance/fore) +"Du" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/loading{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo/smeltery) +"Dw" = ( +/obj/structure/chair/stool{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Dx" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/door/poddoor/ert{ + dir = 8; + id = "ice_exterior_starboard" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/exterior) +"DB" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/bin, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/trash/sosjerky, +/obj/item/trash/can, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"DK" = ( +/obj/structure/table/wood/reinforced, +/obj/item/newspaper, +/obj/item/newspaper{ + pixel_y = 2 + }, +/obj/item/newspaper{ + pixel_y = 4 + }, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"DS" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"DT" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"Ea" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Ed" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/door/airlock/outpost{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"Eh" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "ice_exterior_airlock" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"El" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Eq" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/outpost{ + dir = 1; + name = "Security Checkpoint" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"Et" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/salvageable/computer, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/maintenance/starboard) +"Eu" = ( +/obj/structure/closet/secure_closet/ertEngi{ + anchored = 1 + }, +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/door/window/brigdoor/southleft{ + req_one_access_txt = "103" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/security/armory) +"Ey" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"EH" = ( +/obj/structure/bonfire/prelit, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"EJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/trashcart, +/obj/effect/spawner/lootdrop/maintenance/four, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/port) +"EK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/sign/poster/retro/random{ + pixel_x = -32 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/outpost/maintenance/port) +"EO" = ( +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plating{ + icon_state = "foam_plating" + }, +/area/outpost/maintenance/starboard) +"EQ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8; + layer = 4.1 + }, +/obj/structure/sign/directions/security{ + dir = 8; + pixel_x = -32; + pixel_y = 8 + }, +/obj/structure/sign/directions/evac{ + pixel_x = -32; + pixel_y = -8; + desc = "A direction sign, pointing out which way the exit is." + }, +/obj/structure/sign/directions/engineering{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Fc" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/structure/sign/poster/official/random{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"Ff" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/mining{ + dir = 2; + name = "Smeltery" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo/smeltery) +"Fk" = ( +/turf/open/floor/plating/ice/temperate{ + light_color = "#1B1D2E" + }, +/area/outpost/external) +"Fp" = ( +/turf/closed/wall/rust, +/area/outpost/maintenance/starboard) +"Fq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"Fv" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/starboard) +"Fw" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/structure/window/reinforced, +/obj/machinery/paystand, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"Fy" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"FA" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1; + req_one_access_txt = "101" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/fore) +"FE" = ( +/obj/structure/mopbucket, +/obj/item/mop, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"FG" = ( +/obj/effect/decal/fakelattice, +/mob/living/simple_animal/pet/mothroach{ + name = "Mittens" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/outpost/maintenance/starboard) +"FH" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"FO" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/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"; + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"FQ" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"FV" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/crew/lounge) +"FX" = ( +/obj/structure/filingcabinet/double/grey, +/obj/item/documents/nanotrasen, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"FY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 6 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"Gg" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Gn" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/outpost/security) +"Gv" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"GC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/obj/item/trash/chips, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/trash/candy, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"GD" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"GO" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8; + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/tiles, +/area/outpost/crew/lounge) +"GS" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/advanced_airlock_controller/internal{ + pixel_x = 28 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"GU" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/maintenance{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/starboard) +"GX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/light/small/broken/directional/north, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Hc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible/layer4{ + dir = 9 + }, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"Hd" = ( +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/external) +"Hf" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/external) +"Hh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white/end{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"Hm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/outpost/engineering/atmospherics) +"Ho" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Hq" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/sign/poster/retro/random{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Hr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/obj/machinery/conveyor_switch/oneway{ + pixel_x = 6; + pixel_y = -6; + id = "smelter2" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"Hw" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"HB" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/concrete/tiles, +/area/outpost/crew/bar) +"HF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/decal/cleanable/confetti, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"HI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/structure/sign/poster/retro/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/engineering/atmospherics) +"HS" = ( +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/obj/item/trash/candy{ + pixel_x = -2 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"HW" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Im" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"Io" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/beans{ + pixel_x = -16 + }, +/obj/item/trash/can/food/beans{ + pixel_y = 12; + pixel_x = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/light/dim/directional/south, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"Ip" = ( +/obj/machinery/door/window/brigdoor/eastleft{ + req_one_access_txt = "101" + }, +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/security) +"Ir" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "ice_shop1_window" + }, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/shop) +"Iv" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/structure/window/reinforced, +/obj/machinery/paystand, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"Iw" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Iy" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/mopbucket, +/obj/item/caution{ + pixel_y = 18; + pixel_x = -3 + }, +/obj/item/mop, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/shop) +"IC" = ( +/obj/machinery/door/airlock/outpost{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech, +/area/outpost/external) +"IH" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"IM" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/grass/rockplanet, +/obj/structure/flora/rock/pile{ + density = 0 + }, +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/plating/grass, +/area/outpost/maintenance/fore) +"IV" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Ja" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Jb" = ( +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/outpost/external) +"Jd" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Jf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/starboard) +"Ji" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + piping_layer = 2 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"JD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/port) +"JG" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"JJ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/retro/random{ + pixel_x = 32 + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"JM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"JN" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Ka" = ( +/obj/effect/decal/fakelattice, +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"Kc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/engineering/atmospherics) +"Ke" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Kl" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/button/door{ + pixel_y = 28; + id = "ice_ERT_bay"; + name = "Bay Door"; + pixel_x = 3; + req_one_access_txt = "101" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/grid, +/area/outpost/security/armory) +"KD" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/machinery/light/dim/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"KN" = ( +/obj/machinery/light/dim/directional/east, +/obj/structure/table/reinforced, +/obj/item/newspaper{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/cigbutt{ + pixel_x = 3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"KO" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"KR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/tech/grid, +/area/outpost/security/armory) +"KS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 10 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"KU" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/curtain, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"KX" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/ash, +/obj/item/cigbutt{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"La" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/cryo) +"Lb" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Lw" = ( +/obj/machinery/door/airlock/grunge, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/maintenance/port) +"LB" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"LJ" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/crew/cryo) +"LO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/obj/item/stack/cable_coil/cut/red{ + pixel_y = 10; + pixel_x = -3 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/layer2{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/oil, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light/small/directional/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/port) +"LS" = ( +/obj/structure/closet/secure_closet/ertSec{ + anchored = 1 + }, +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/door/window/brigdoor/southleft{ + req_one_access_txt = "103" + }, +/obj/structure/window/reinforced/spawner{ + dir = 4 + }, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/stack/sheet/mineral/sandbags, +/obj/item/holosign_creator/security, +/turf/open/floor/plasteel/dark, +/area/outpost/security/armory) +"LT" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/holopad/emergency/security, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"LU" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/pipedispenser, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/engineering/atmospherics) +"Md" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/item/trash/energybar, +/obj/item/trash/sosjerky{ + pixel_x = 8; + pixel_y = 12 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Mf" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/outpost/security) +"Mi" = ( +/obj/machinery/camera{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Mr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Ms" = ( +/obj/machinery/camera{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/mob/living/simple_animal/bot/cleanbot{ + name = "\improper Elite Custodial Officer"; + desc = "Pray for your life, litter!" + }, +/mob/living/simple_animal/bot/cleanbot{ + name = "\improper Elite Custodial Officer"; + desc = "Pray for your life, litter!" + }, +/mob/living/simple_animal/bot/cleanbot{ + name = "\improper Elite Custodial Officer"; + desc = "Pray for your life, litter!" + }, +/obj/structure/closet/jcloset, +/obj/machinery/door/window/brigdoor/northleft, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/armory) +"Mv" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Mz" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"MJ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/holopad/emergency/security, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"MK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/camera{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"ML" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"MR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/north, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"MW" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/outpost/maintenance/fore) +"Nb" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_y = 9; + pixel_x = 6 + }, +/obj/item/phone{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/machinery/button/door{ + id = "ice_sec1_window"; + name = "Window Shutters"; + pixel_x = 6; + req_one_access_txt = "101" + }, +/obj/machinery/button/door{ + id = "ice_exterior_port"; + name = "Exterior Door"; + pixel_x = -6; + req_one_access_txt = "101" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"Nh" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/exterior) +"Nl" = ( +/obj/machinery/computer/secure_data{ + icon_state = "computer-left" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"Nn" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Nu" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"NA" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"NG" = ( +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"NM" = ( +/turf/open/floor/engine/air, +/area/outpost/engineering/atmospherics) +"NW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/decal/cleanable/oil, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/engineering/atmospherics) +"Od" = ( +/obj/machinery/vending/cola/space_up, +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"Og" = ( +/obj/structure/statue/snow/snowman, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/external) +"Oh" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Ol" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"On" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + dir = 4; + req_one_access_txt = "101" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo/smeltery) +"Oo" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/borderfloor/full, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/starboard) +"OC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"OD" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms/shop) +"OF" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"OR" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"OW" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/lounge) +"Pc" = ( +/obj/structure/aquarium/prefilled, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"Pd" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/external) +"Pe" = ( +/obj/effect/decal/fakelattice, +/obj/machinery/light/small/directional/east{ + pixel_y = -6 + }, +/obj/structure/railing, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"Pf" = ( +/obj/structure/table_frame, +/obj/item/trash/sosjerky{ + pixel_x = 8; + pixel_y = 12 + }, +/obj/item/trash/pistachios{ + pixel_x = -4 + }, +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/outpost/exterior) +"Pj" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/grille/broken, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"Pk" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Pr" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"Pz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/port) +"PA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"PD" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/item/radio/intercom/directional/north, +/obj/item/storage/secure/safe{ + dir = 8; + pixel_x = -32 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"PK" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/retro/random{ + pixel_y = -32 + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"PN" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"PT" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/fore) +"PU" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"PW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"Qe" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/security) +"Qf" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"Qk" = ( +/obj/effect/turf_decal/siding/white/corner, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/railing/corner{ + layer = 4.1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Ql" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/starboard) +"Qn" = ( +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"Qr" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Qs" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil/slippery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms/shop) +"Qu" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/outpost/crew/lounge) +"Qv" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/door/poddoor/ert, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/maintenance/port) +"Qx" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/light/directional/north, +/obj/machinery/mineral/processing_unit_console{ + machinedir = 8; + output_dir = 1; + pixel_x = 32 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"QC" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/sign/poster/retro/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"QL" = ( +/obj/structure/table/reinforced, +/obj/machinery/camera{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"QN" = ( +/obj/item/trash/raisins{ + pixel_x = -8 + }, +/obj/item/trash/pistachios{ + pixel_y = 10; + pixel_x = 4 + }, +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"QP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/transparent/neutral/arrow_ccw, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"QU" = ( +/obj/machinery/cryopod, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/camera, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/crew/cryo) +"QV" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/security/checkpoint) +"QY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/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"; + dir = 4; + name = "Atmospherics" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/engineering/atmospherics) +"Rb" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Rc" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"Rg" = ( +/obj/machinery/mineral/processing_unit{ + output_dir = 4; + input_dir = 8 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"Rh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump/on/layer4{ + dir = 4; + target_pressure = 500 + }, +/turf/open/floor/plating, +/area/outpost/engineering/atmospherics) +"Rj" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/cut/red, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/starboard) +"Rn" = ( +/obj/structure/chair/stool{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Rs" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 5 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/lounge) +"Rv" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"RA" = ( +/obj/structure/table/wood/reinforced, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_y = 5; + pixel_x = -4 + }, +/obj/item/table_bell{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"RC" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"RD" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"RP" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"RU" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Sc" = ( +/obj/structure/reagent_dispensers/water_cooler{ + pixel_y = 4; + pixel_x = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/lounge) +"Sf" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/external) +"Sh" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/wrapping, +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plating, +/area/outpost/security) +"Si" = ( +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms/shop) +"Sp" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Sq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable{ + icon_state = "0-1" + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"Sr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"Sz" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo/smeltery) +"SA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"SD" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/cargo/smeltery) +"SG" = ( +/turf/closed/wall/r_wall/rust, +/area/outpost/maintenance/fore) +"SH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/newscaster/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/lounge) +"SW" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"SY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/outpost/crew/lounge) +"Tb" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"Td" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"Te" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"Tf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"Ti" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Tm" = ( +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Tn" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"To" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"Tv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken7" + }, +/area/outpost/crew/bar) +"Ty" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"TJ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"TP" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"TS" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "foam_plating" + }, +/area/outpost/maintenance/fore) +"TX" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/external) +"TZ" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/item/broken_bottle{ + pixel_x = 4 + }, +/obj/item/cigbutt, +/obj/item/cigbutt{ + pixel_y = 6; + pixel_x = -8 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Ub" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/door/poddoor/ert{ + dir = 8; + id = "ice_exterior_port" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/exterior) +"Ud" = ( +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/machinery/firealarm/directional/west, +/obj/item/trash/can, +/obj/item/trash/raisins, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"Ue" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/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"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"Uf" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Uh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/open/floor/plating, +/area/outpost/maintenance/port) +"Uk" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/light/dim/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Uo" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/door/airlock/outpost{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"Uy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"UA" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"UB" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/trash/can/food/beans{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/effect/decal/fakelattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plating{ + icon_state = "foam_plating" + }, +/area/outpost/vacant_rooms/shop) +"UF" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"UP" = ( +/obj/item/reagent_containers/food/drinks/beer{ + pixel_y = 12; + pixel_x = -4 + }, +/obj/item/trash/energybar, +/obj/item/cigbutt/cigarbutt{ + pixel_y = 6; + pixel_x = 5 + }, +/obj/structure/table, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"UQ" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/obj/effect/landmark/outpost/elevator{ + shaft = "1" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"UY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mopbucket, +/obj/item/mop, +/turf/open/floor/plating/rust, +/area/outpost/maintenance/starboard) +"Vm" = ( +/obj/effect/decal/fakelattice{ + layer = 2.010 + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/maintenance/port) +"Vw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ice_shop2_window" + }, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/shop) +"VI" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ice_bar_window" + }, +/turf/open/floor/plating, +/area/outpost/crew/bar) +"VQ" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/carpet/green, +/area/outpost/crew/lounge) +"VR" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"VW" = ( +/obj/machinery/door/airlock{ + dir = 4; + name = "Lounge" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/lounge) +"We" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/security/armory) +"Wh" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"Wq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/wood/walnut, +/area/outpost/crew/bar) +"Ws" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/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"; + dir = 4; + name = "Engineering" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/starboard) +"Wu" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Ww" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Wy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -6; + pixel_y = -4 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Wz" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"WA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/lounge) +"WB" = ( +/obj/effect/decal/cleanable/ash, +/obj/item/cigbutt{ + pixel_x = 3 + }, +/obj/item/cigbutt{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_y = 10; + pixel_x = -12 + }, +/obj/item/reagent_containers/food/snacks/deadmouse{ + pixel_y = 14; + pixel_x = 12 + }, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"WI" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"WL" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"WM" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"WS" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/dark, +/area/outpost/vacant_rooms/shop) +"Xa" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Xd" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-1" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Xf" = ( +/obj/item/kirbyplants{ + icon_state = "plant-17"; + pixel_x = 8 + }, +/obj/item/kirbyplants{ + icon_state = "plant-22"; + pixel_x = -7; + pixel_y = 7 + }, +/obj/machinery/button/door{ + id = "ice_lounge_window"; + name = "Window Shutters"; + pixel_y = 6; + pixel_x = -26; + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -22; + pixel_y = -10; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/outpost/crew/lounge) +"Xk" = ( +/obj/effect/turf_decal/siding/white/end{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/cryo) +"Xm" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"Xn" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Xq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"Xv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"Xw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"Xx" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"Xz" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"XB" = ( +/obj/machinery/door/poddoor/ert{ + dir = 8; + id = "ice_ERT_maint" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/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"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) +"XG" = ( +/obj/structure/table/reinforced, +/obj/machinery/fax, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security) +"XI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/portables_connector/layer4, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"XK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/fakelattice, +/obj/effect/decal/cleanable/insectguts, +/turf/open/floor/plating{ + icon_state = "foam_plating" + }, +/area/outpost/maintenance/starboard) +"XO" = ( +/mob/living/simple_animal/hostile/bear/snow{ + faction = list("neutral"); + name = "polar bear" + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/external) +"XS" = ( +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/starboard) +"Yb" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/borderfloor{ + dir = 6 + }, +/obj/structure/window/reinforced, +/obj/machinery/button/door{ + id = "ice_shop1_window"; + name = "Shop Shutters"; + dir = 1; + pixel_y = 3; + pixel_x = 3 + }, +/obj/item/paper_bin{ + pixel_x = -11 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/outpost/vacant_rooms/shop) +"Ye" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/outpost, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/tech, +/area/outpost/security) +"Yh" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Yj" = ( +/obj/structure/flora/grass/green{ + layer = 3.1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Yy" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/crew/bathroom) +"YA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/bathroom) +"YC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo/smeltery) +"YE" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"YG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/outpost/vacant_rooms/shop) +"YO" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ice_lounge_window" + }, +/turf/open/floor/plating, +/area/outpost/crew/lounge) +"YQ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"YT" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"YW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"YZ" = ( +/obj/machinery/camera{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Zd" = ( +/obj/structure/flora/grass/both{ + layer = 3.1 + }, +/obj/item/shard, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid/snow/temperatre{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Zg" = ( +/obj/machinery/vending/snack/blue, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/light/dim/directional/east, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/smeltery) +"Zi" = ( +/obj/structure/displaycase/forsale{ + density = 1 + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/wrapping, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/shop) +"Zk" = ( +/obj/effect/turf_decal/siding/white, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/snack, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Zl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/effect/decal/cleanable/robot_debris, +/obj/item/shard, +/turf/open/floor/plating, +/area/outpost/maintenance/starboard) +"Zm" = ( +/obj/machinery/computer/security{ + icon_state = "computer-middle" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"Zo" = ( +/obj/structure/bed{ + icon_state = "dirty_mattress" + }, +/obj/structure/curtain/cloth/grey, +/obj/item/bedsheet{ + layer = 3.2 + }, +/turf/open/floor/plating/asteroid/icerock/temperate{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/exterior) +"Zy" = ( +/obj/machinery/door/airlock{ + dir = 4; + name = "Bathroom" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bathroom) +"Zz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"ZD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/security/checkpoint) +"ZK" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating/asteroid/icerock/temperate, +/area/outpost/external) +"ZM" = ( +/obj/machinery/door/poddoor/ert{ + dir = 8; + id = "ice_exterior_starboard" + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/outpost/exterior) +"ZU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/item/book/manual/wiki/security_space_law{ + pixel_y = 17; + pixel_x = 3 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/security/checkpoint) +"ZV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/light/small/directional/east{ + bulb_power = 0.55 + }, +/turf/open/floor/plasteel/patterned/brushed{ + light_color = "#1B1D2E"; + light_range = 2 + }, +/area/outpost/crew/cryo) +"ZZ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/item/trash/raisins{ + pixel_x = -4 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/starboard) + +(1,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hf +Hf +IC +Hf +Hf +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(2,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(3,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(4,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hf +ZK +Jb +aN +Hf +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(5,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(6,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(7,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cr +cr +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hf +Jb +Jb +Jb +Hf +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(8,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Sf +Hd +Hd +Hd +Sf +Hd +Hd +Hd +cr +cr +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(9,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(10,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Pd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hf +ZK +Jb +aN +Hf +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(11,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Sf +Hd +Hd +Sf +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Sf +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(12,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(13,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hf +Hf +IC +Hf +Hf +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(14,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +cr +Hd +Sf +Hd +Hd +Sf +Hd +Hd +Sf +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(15,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +dt +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(16,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Pd +Sf +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +dt +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +dt +Hd +Hd +Pd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(17,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(18,1,1) = {" +cC +cC +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Pd +Hd +Hd +Hd +dt +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(19,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Sf +Hd +Pd +Hd +Hd +cC +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(20,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(21,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +Hd +Hd +Hd +dt +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(22,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(23,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Pd +Hd +Hd +TX +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(24,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(25,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Sf +Hd +TX +Hd +Hd +Hd +Hd +Hd +Pd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Sf +Hd +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +TX +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(26,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(27,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(28,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +TX +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Pd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(29,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +cC +cC +cC +cC +Jb +Hd +Pd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +TX +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +TX +Hd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(30,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +Hd +Hd +dt +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(31,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +Jb +Hd +Hd +fq +fE +eI +Hd +Hd +Jb +cC +cC +cC +cC +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(32,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +cr +cr +cr +Hd +Hd +Sf +Hd +Hd +Hd +Sf +Hd +Hd +Hd +cC +cC +cC +cC +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +Nh +de +Cy +tx +UF +ct +Nh +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(33,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Nh +KD +JN +tx +wL +uy +Nh +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(34,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Nh +Nh +dh +Ub +Ub +Nh +Nh +bv +bv +bv +bv +bv +Ba +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(35,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +TX +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Fk +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Pd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +Ba +NG +cC +cC +cC +cC +Ba +Ww +IH +WL +jL +KO +vC +Ww +bv +Nb +fk +qh +bv +NG +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(36,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +NG +NG +NG +BC +AA +NG +vC +NG +WL +BL +yw +NG +IH +gs +Nl +LT +Tn +bv +NG +Ba +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(37,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +TX +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +NG +NG +NG +IH +NG +NG +NG +BC +NG +Ke +BL +Bz +NG +NG +gs +gG +Tb +XG +bv +NG +NG +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(38,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +cr +cr +cr +Hd +dt +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +NG +NG +wf +NG +vC +NG +NG +NG +vC +WL +BL +yw +IH +mm +bv +FX +fe +Pr +bv +QN +NG +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(39,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +cr +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +Tm +vC +NG +AS +Ir +Ir +Ir +AS +AS +mE +WL +OR +yw +ji +bv +bv +bv +Uo +bv +bv +NG +tn +NG +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(40,1,1) = {" +cC +cC +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Sf +Hd +Hd +Hd +Pd +Hd +Sf +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +lK +NG +AS +AS +mV +eG +fC +cT +AS +NG +WL +OR +yw +am +bv +tl +nn +Xm +jk +bv +NG +NG +NG +Ba +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(41,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Pd +Hd +Sf +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +NG +NG +AS +Ty +vP +Cf +HF +WS +AS +vI +lY +OR +hM +ez +bv +el +Ip +Xm +oK +bv +NG +BC +NG +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(42,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +dt +Hd +cr +cr +cr +cr +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Pf +NG +yp +AS +da +Iv +AV +hc +YG +cO +eg +eg +Pk +rL +rL +Ye +hU +jh +FQ +nF +bv +NG +NG +AA +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(43,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +YT +nS +NG +vC +sx +AS +uD +BV +cf +iF +Io +AS +xg +nH +OR +xG +WI +bv +cm +Te +Wh +bv +bv +NG +NG +NG +cC +cC +cC +cC +cC +ov +ov +ov +ov +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(44,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +TX +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +sh +EH +Tm +qZ +NG +IH +AS +jH +Yb +Ch +if +UB +AS +NG +WL +BL +KO +NG +bv +bv +bv +Ue +bv +NG +NG +NG +BC +cC +cC +cC +cC +cC +ov +NM +NM +ov +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(45,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Pd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Pd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +Rn +mz +UP +NG +yp +AS +AS +AS +AS +Rv +AS +AS +IH +WL +BL +yw +NG +yk +bv +Mf +Qe +bv +BC +nK +NG +NG +cC +cC +cC +cC +cC +ov +xr +Hm +ov +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(46,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Pd +Hd +dt +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +Zo +BZ +dV +EH +tJ +AS +es +Qs +AS +mm +NG +Ke +BL +vD +NG +qZ +bv +Sh +fW +bv +NG +NG +NG +NG +cC +cC +cC +ov +ov +ov +lb +lb +ov +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(47,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +cC +cC +cC +cC +cC +yR +yR +yR +yR +yR +WB +wf +Dw +IH +AS +rc +OD +AS +IH +NG +WL +BL +yw +vC +NG +bv +Gn +aM +bv +NG +NG +BC +NG +Ba +cC +cC +ov +HI +Kc +Rh +hV +ov +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(48,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +cr +cr +cr +Hd +Hd +Hd +Sf +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Jb +cC +yR +yR +yR +HB +gH +mM +yR +sx +CI +AS +AS +AS +AS +Rv +AS +AS +HS +Ol +OR +yw +NG +We +We +We +XB +We +NG +NG +NG +vC +Ba +cC +cC +ov +wC +NW +nG +im +ov +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(49,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +yR +pv +gI +vZ +uq +iw +yR +Ea +xp +AS +PD +Fw +QP +Gv +dp +AS +vI +lY +BL +Sp +NG +We +LS +OF +bi +We +We +vC +mm +NG +cC +cC +cC +ov +LU +uO +Hc +bz +ov +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(50,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Pd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Sf +Hd +Hd +Hd +VI +qw +Tv +RA +DK +yR +yR +EH +tJ +AS +gv +BV +yd +Si +wH +et +eg +eg +vc +Sp +NG +We +iR +mk +zn +Bm +We +NG +NG +NG +cC +cC +cC +ov +uE +wi +Ji +rG +pm +nL +nL +nL +nL +nL +nL +nL +nL +uc +"} +(51,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +XO +Hd +Hd +Sf +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +VI +Qf +bG +tw +hG +GC +yR +AS +AS +AS +aU +Bu +dr +PW +qn +AS +Iw +nH +BL +GD +Mi +We +Eu +Tf +pu +uA +We +NG +BC +NG +ij +ke +ke +ov +ov +QY +ov +ov +ov +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(52,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Pd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +dt +Hd +TX +Og +Hd +Hd +Hd +Hd +VI +lw +iA +tR +KS +BM +wv +oF +lv +Xv +uX +nN +mC +dI +AS +AS +mE +Ol +BL +yw +mm +We +We +Kl +KR +Ms +We +NG +NG +IH +ij +LO +Uh +EK +du +oq +ke +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(53,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Pd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +TX +Hd +VI +oe +hz +zH +FY +lR +yR +sC +Iy +AS +PN +eG +Hh +mV +Vw +NG +IH +Ke +BL +KO +NG +va +We +eM +od +We +We +NG +NG +NG +qA +ls +Pz +BX +bL +EJ +ij +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(54,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +TX +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +yR +Pc +KN +zI +lp +Wq +yR +AS +AS +AS +bW +rM +qm +qx +Vw +NG +BC +WL +OR +tb +Nh +NG +jq +PU +pw +SW +NG +NG +kM +ij +ij +ij +ij +ij +ij +fI +ij +cC +cC +ij +cC +cC +cC +cC +cC +cC +cC +cC +"} +(55,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Pd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +TX +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Jb +cC +yR +yR +yR +yR +qY +yR +yR +NG +Yj +AS +tI +PN +rF +Zi +Vw +NG +dg +WL +OR +Wu +EQ +Ja +eT +PU +YE +Cu +Ja +dk +Ja +vW +Td +Vm +UQ +tS +cU +bj +jl +Qn +Qn +Qv +cC +cC +cC +cC +cC +cC +cC +cC +"} +(56,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +cr +cr +cr +Hd +dt +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Sf +cC +cC +cC +cC +cC +cC +qZ +TP +Bd +fx +aQ +NG +NG +AS +Bj +Bj +Bj +AS +AS +vC +NG +Ol +RU +VR +Rb +TJ +TJ +Mr +tr +Rb +Rb +TJ +Xd +Lw +Vm +Td +Td +tS +Ka +JD +Qn +Qn +Aj +Qv +cC +cC +cC +cC +cC +cC +cC +cC +"} +(57,1,1) = {" +cC +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Sf +Hd +Sf +Hd +cr +cr +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Pd +Hd +cC +cC +cC +cC +cC +cC +aC +NG +dq +Bd +KO +NG +NG +BC +NG +NG +IH +NG +my +NG +NG +BC +DB +Mv +Ti +Xn +Qk +AT +DS +HW +AT +HW +DS +AT +vW +Vm +Td +Td +tS +Pe +bj +Qn +kG +Aj +Qv +cC +cC +cC +cC +cC +cC +cC +cC +"} +(58,1,1) = {" +cC +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +LJ +LJ +LJ +LJ +LJ +LJ +Ho +nW +Bd +KO +NG +NG +IH +NG +vC +NG +BC +NG +IH +mm +Nh +ot +Cq +vB +wL +Zk +NG +IH +NG +BC +vC +NG +rD +ij +ij +ij +ij +ij +ij +nA +ij +cC +cC +ij +cC +cC +cC +cC +cC +cC +cC +cC +"} +(59,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Pd +Hd +Hd +cr +cr +Hd +Hd +dt +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +LJ +oj +uC +oj +lo +LJ +Ay +do +Ti +kn +au +Ja +dk +Ja +au +Ja +Ja +Ja +dk +au +wd +xf +FH +Bd +lj +dM +qZ +kL +NG +pJ +NG +NG +BC +NG +cC +cC +cC +pa +XI +cx +pa +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(60,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +cr +cr +cr +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +cC +cC +LJ +xM +La +yu +lc +qD +rL +rL +xs +rL +rL +ly +ly +ly +rL +wl +eg +eg +dY +dY +dY +dY +eg +Jd +WM +lZ +NG +QV +QV +QV +QV +QV +NG +Zd +Ba +cC +cC +zY +uI +Bv +zY +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(61,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Pd +Sf +cC +LJ +QU +ZV +oj +Xk +LJ +zw +SA +Nn +wW +HW +HW +li +AT +nH +Ti +xG +HW +DS +HW +HW +AT +zB +Oh +Ti +Cu +Wz +QV +mF +ZU +MK +QV +QV +cC +cC +cC +cC +pa +JG +oI +zY +pa +pa +pa +cC +cC +cC +cC +cC +cC +cC +cC +"} +(62,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +TX +Hd +Hd +Hd +cr +cr +cr +TX +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Jb +FV +FV +FV +FV +VW +FV +sj +nZ +BL +Ey +YZ +qZ +TZ +NG +jI +Ti +ig +NG +Md +NG +vC +NG +Nh +lF +RP +eg +eg +Eq +hL +YW +mK +he +QV +cC +cC +cC +cC +pa +zc +lU +pa +Rj +jj +pa +cC +cC +cC +cC +cC +cC +cC +cC +"} +(63,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Pd +Hd +Sf +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Sf +Hd +Hd +YO +Xf +hJ +SH +FV +mm +iO +Zy +iO +iO +NG +cC +Ak +Ak +ny +Ak +Ak +NG +mm +NG +IH +NG +WL +Ti +xG +xc +QV +oz +sz +Zz +kj +QV +cC +cC +cC +cC +zY +GX +AC +qO +xj +rS +pa +cC +cC +cC +cC +cC +cC +cC +cC +"} +(64,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +YO +cd +Qu +VQ +FV +iO +iO +YA +xn +iO +cC +cC +Ak +Od +ML +Ud +Ak +SD +SD +Ak +Ak +vC +WL +Ti +yw +NG +QV +QV +QV +Ed +QV +QV +pa +zY +zY +pa +pa +JM +Zl +pa +Fp +Ah +pa +pa +cC +cC +cC +cC +cC +cC +cC +"} +(65,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +dt +Hd +Sf +Sf +Hd +Pd +Hd +Hd +YO +ga +Rs +OW +GO +iO +Au +To +RD +iO +iO +iO +Ak +Zg +Uy +ip +Ff +Xq +Xz +gB +Ak +NG +WL +Ti +yw +IH +NG +QV +bU +YQ +An +FO +dQ +Xa +Wy +la +Fv +Ql +zU +zY +EO +ZZ +zO +pa +cC +cC +cC +cC +cC +cC +cC +"} +(66,1,1) = {" +cC +cC +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Hd +Pd +Hd +Sf +Hd +Hd +Pd +Hd +Hd +cr +cr +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +YO +ga +Sc +WA +ho +iO +rA +PA +Xx +rU +Fc +KU +Ak +Ak +On +Ak +Ak +sG +ng +ur +SD +NG +WL +Ti +yw +NG +AX +QV +rI +ZD +xh +QV +ua +UY +IV +pl +uT +tU +oA +pa +re +FG +uu +pa +cC +cC +cC +cC +cC +cC +cC +"} +(67,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Pd +Hd +TX +Sf +Hd +Hd +FV +SY +SY +FV +FV +iO +Yy +an +tD +iO +zA +xN +Cc +Dn +fQ +Ak +MR +is +Hr +us +SD +NG +WL +Bd +KO +mm +NG +qE +nU +sI +QL +QV +pa +zY +GU +pa +pa +Ws +pa +pa +pa +pa +pa +pa +cC +cC +cC +cC +cC +cC +cC +"} +(68,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Sf +Hd +cr +cr +Hd +TX +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Cc +dZ +IM +Cc +DT +Cc +yG +LB +Rc +iO +iO +iO +Cc +tC +su +Ak +Du +Im +YC +Sz +SD +NG +WL +Bd +KO +NG +IH +qE +Zm +pC +kv +QV +Et +rY +Oo +qs +pa +Uf +XS +mP +pa +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(69,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Pd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Pd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Cc +Cc +AG +Cc +qa +FA +CF +Fy +Xx +mS +qI +aX +Cc +uN +fQ +Ak +rv +aW +dL +tM +Ak +mE +Ke +Bd +KX +NG +Yj +qE +nE +MJ +cB +QV +iH +fT +XK +uf +pa +Qr +nB +At +pa +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(70,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Sf +Hd +Pd +Cc +vu +dJ +JJ +cL +Cc +iO +nv +Fq +iO +mB +mO +Cc +Pj +TS +Ak +na +ab +Sr +kK +SD +IH +xK +Bd +KO +vC +tk +QV +QV +yq +Sq +QV +oi +Jf +xv +zY +pa +pa +pa +pa +pa +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(71,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Sf +Pd +Hd +cr +cr +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Cc +NA +NA +Cc +yi +pi +Cc +Cc +vg +Cc +Cc +Cc +Cc +RC +bP +Ak +qR +aW +dG +kK +SD +NG +WL +Bd +KO +qZ +NG +cC +QV +QV +QV +QV +pa +zY +pa +pa +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(72,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +TX +Hd +Hd +Pd +Sf +Hd +Hd +Cc +Cc +Cc +Cc +oY +uH +Cc +aY +gO +Cc +PT +PK +Ak +om +OC +Xw +Rg +SD +vC +WL +Ti +KO +IH +NG +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(73,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Sf +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Sf +Hd +Hd +Hd +Sf +Hd +Eh +sq +QC +Bh +MW +zQ +Dl +Yh +El +kZ +uY +vn +Ak +Qx +bJ +yM +td +Ak +Mz +Ol +Lb +KO +sH +Nh +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(74,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Pd +Hd +TX +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +aR +sA +GS +sg +Hq +tO +Nu +FE +iP +wD +vA +gX +Ak +Ak +Ak +Ak +Ak +Ak +Nh +ZM +Dx +Dx +Nh +Nh +cC +cC +cC +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(75,1,1) = {" +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Sf +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Pd +Hd +Sf +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +SG +Cc +Cc +cC +cC +cC +cC +Nh +Uk +Cq +tx +wL +kX +Nh +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(76,1,1) = {" +cC +cC +cC +cC +cC +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +cC +cC +cC +cC +cC +cC +Nh +ll +vy +tx +Gg +qK +Nh +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(77,1,1) = {" +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Pd +Hd +Hd +Hd +Pd +cr +cr +cr +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Pd +Sf +cC +cC +cC +cC +cC +cC +cC +Jb +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +Hd +pA +Hw +UA +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(78,1,1) = {" +cC +cC +cC +cC +cC +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Sf +Hd +Sf +Hd +Hd +Hd +Pd +Hd +Sf +Hd +Hd +Hd +cC +cC +cC +cC +cC +Hd +Hd +Sf +Hd +Hd +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(79,1,1) = {" +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +TX +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +dt +Hd +Sf +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(80,1,1) = {" +cC +cC +cC +cC +cC +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +dt +Hd +Hd +Sf +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(81,1,1) = {" +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(82,1,1) = {" +cC +cC +cC +cC +cC +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Sf +Hd +Sf +Hd +Hd +cr +cr +cr +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Sf +Hd +cC +cC +cC +cC +Hd +Hd +Pd +Hd +Hd +dt +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(83,1,1) = {" +cC +cC +cC +cC +cC +Jb +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +cC +cC +cC +cC +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(84,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Sf +Hd +Sf +Hd +Pd +Hd +Hd +Hd +Hd +Pd +cr +cr +cr +Hd +Hd +Hd +TX +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(85,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +dt +Hd +Hd +Hd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(86,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +cC +Sf +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Sf +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(87,1,1) = {" +cC +cC +cC +cC +cC +cC +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +cr +cr +cr +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +dt +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(88,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cr +cr +cr +cC +cC +cC +cC +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Pd +Hd +Hd +Sf +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(89,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Pd +Hd +Hd +Hd +cC +cC +cC +cC +cr +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Sf +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(90,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +cC +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Sf +Hd +Hd +Hd +Pd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(91,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(92,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +cC +cC +Hd +dt +Hd +Hd +Sf +Hd +Hd +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(93,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hf +Hf +IC +Hf +Hf +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(94,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(95,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(96,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hf +ZK +Jb +aN +Hf +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(97,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(98,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Jb +Jb +Jb +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} +(99,1,1) = {" +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +Hf +Hf +IC +Hf +Hf +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +cC +"} diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index 16a771d5be54..4bdc4813bf69 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -641,12 +641,12 @@ /obj/item/clothing/head/beret/hop, /obj/item/radio/headset/heads/head_of_personnel, /obj/item/clothing/glasses/sunglasses/big, -/obj/item/clothing/suit/toggle/lieutenant, /obj/item/clothing/suit/toggle/lawyer/burgundy, /obj/item/clothing/suit/toggle/lawyer/navy, /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 +3504,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 +3520,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/independent/independent_bubble.dmm b/_maps/shuttles/independent/independent_bubble.dmm index 6e37d1b244e8..32efe563c0bb 100644 --- a/_maps/shuttles/independent/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/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm index 6f86b626025b..645b3a652960 100644 --- a/_maps/shuttles/independent/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/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm index 48c5487f6ebe..29264dd2958f 100644 --- a/_maps/shuttles/independent/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/independent/independent_pillbottle.dmm b/_maps/shuttles/independent/independent_pillbottle.dmm index 7408067decf5..92529ea329c6 100644 --- a/_maps/shuttles/independent/independent_pillbottle.dmm +++ b/_maps/shuttles/independent/independent_pillbottle.dmm @@ -1721,9 +1721,6 @@ }, /turf/open/floor/plating, /area/ship/hallway/fore) -"CP" = ( -/turf/template_noop, -/area/space) "CQ" = ( /turf/closed/wall, /area/ship/bridge) @@ -3919,5 +3916,5 @@ hT hT WS tG -CP +Oz "} diff --git a/_maps/shuttles/independent/independent_rube_goldberg.dmm b/_maps/shuttles/independent/independent_rube_goldberg.dmm index 50febf2f2550..b8960b78342d 100644 --- a/_maps/shuttles/independent/independent_rube_goldberg.dmm +++ b/_maps/shuttles/independent/independent_rube_goldberg.dmm @@ -83,6 +83,7 @@ "bb" = ( /obj/structure/cable/green, /obj/effect/turf_decal/industrial/radiation/full, +/obj/machinery/power/grounding_rod, /turf/open/floor/plating, /area/ship/storage) "be" = ( @@ -4162,6 +4163,19 @@ /obj/machinery/suit_storage_unit/atmos, /turf/open/floor/plating, /area/ship/engineering/atmospherics) +"Or" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/radiation{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/radiation{ + dir = 4 + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/mineral/titanium, +/area/ship/storage) "Ot" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 10 @@ -4450,7 +4464,14 @@ /turf/open/floor/plating/airless, /area/ship/hallway) "Sw" = ( -/obj/machinery/atmospherics/components/unary/thermomachine, +/obj/structure/frame/machine, +/obj/item/circuitboard/machine/thermomachine/freezer, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stack/cable_coil/cut, +/obj/item/stack/sheet/glass, /turf/open/floor/plating, /area/ship/engineering/engine) "Sx" = ( @@ -7063,9 +7084,9 @@ Zy mV bB SY -SY -SY -SY +Or +Or +Or bb zy wg diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm index 062e8a8f61f3..68fcd724dc7b 100644 --- a/_maps/shuttles/independent/independent_shetland.dmm +++ b/_maps/shuttles/independent/independent_shetland.dmm @@ -64,7 +64,6 @@ /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/obj/effect/landmark/start/lieutenant, /turf/open/floor/plasteel/dark, /area/ship/bridge) "aG" = ( @@ -1240,18 +1239,21 @@ /obj/machinery/button/door{ id = "amogusdoors"; name = "Blast Door Control"; - pixel_x = 5; - pixel_y = 5 + pixel_x = 6; + pixel_y = 7 }, /obj/structure/table/reinforced, /obj/machinery/button/door{ id = "amoguswindows"; name = "Window Lockdown"; - pixel_x = -5; - pixel_y = -5 + pixel_x = -7; + pixel_y = 7 }, /obj/effect/turf_decal/corner/opaque/neutral/half, /obj/item/radio/intercom/directional/north, +/obj/item/phone{ + pixel_y = -4 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "mG" = ( @@ -1395,16 +1397,22 @@ /turf/open/floor/plasteel/dark, /area/ship/hallway/port) "oB" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ - dir = 4 - }, -/obj/item/phone, -/obj/item/megaphone/command{ - pixel_x = 10 - }, /obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/dark, +/obj/structure/closet/secure_closet{ + icon_state = "hop"; + name = "\proper first officer's locker"; + req_access_txt = "57" + }, +/obj/item/clothing/under/rank/command/head_of_personnel, +/obj/item/clothing/under/rank/command/head_of_personnel/skirt, +/obj/item/clothing/suit/armor/vest/hop, +/obj/item/clothing/head/beret/hop, +/obj/item/gun/energy/e_gun/mini, +/obj/item/clothing/shoes/laceup, +/obj/item/radio/headset/headset_com/alt, +/obj/item/storage/box/ids, +/obj/item/storage/briefcase, +/turf/open/floor/carpet/blue, /area/ship/bridge) "oC" = ( /obj/structure/cable{ @@ -1615,15 +1623,18 @@ "qE" = ( /obj/machinery/light/small/directional/south, /obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/neutral/half{ - dir = 1 - }, /obj/item/paper_bin, /obj/item/spacecash/bundle/c1000, /obj/item/spacecash/bundle/c1000, /obj/item/spacecash/bundle/c1000, /obj/item/spacecash/bundle/c1000, /obj/item/spacecash/bundle/c1000, +/obj/item/megaphone/command{ + pixel_x = 10 + }, +/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "qJ" = ( @@ -3621,11 +3632,22 @@ icon_state = "0-2" }, /obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/closet/secure_closet/true_lieutenant, /obj/machinery/light_switch{ pixel_x = 11; pixel_y = 23 }, +/obj/structure/closet/secure_closet{ + icon_state = "cap"; + name = "\proper captain's locker"; + req_access_txt = "20" + }, +/obj/item/clothing/under/rank/command/captain/suit, +/obj/item/clothing/under/rank/command/captain/skirt, +/obj/item/storage/backpack/captain, +/obj/item/radio/headset/heads/captain/alt, +/obj/item/clothing/gloves/color/captain, +/obj/item/gun/energy/e_gun, +/obj/item/clothing/shoes/laceup, /turf/open/floor/carpet/blue, /area/ship/bridge) "KN" = ( @@ -4063,12 +4085,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/ship/medical) -"OD" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) "OE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 @@ -6769,9 +6785,9 @@ dl LL TY Ft -OD +aw Lr -OD +aw xq TY LL diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index e612c7fe57e9..27fd11a9368d 100644 --- a/_maps/shuttles/independent/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/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index 9aec48334728..bf86ed599f7f 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -3631,8 +3631,6 @@ /obj/structure/closet/crate/trashcart, /obj/machinery/airalarm/directional/east, /obj/machinery/firealarm/directional/south, -/obj/effect/spawner/lootdrop/spacegym, -/obj/effect/spawner/lootdrop/spacegym, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/corner_techfloor_gray{ dir = 4 diff --git a/_maps/shuttles/minutemen/minutemen_asclepius.dmm b/_maps/shuttles/minutemen/minutemen_asclepius.dmm index b2b8bf8786f2..877e24727dfd 100644 --- a/_maps/shuttles/minutemen/minutemen_asclepius.dmm +++ b/_maps/shuttles/minutemen/minutemen_asclepius.dmm @@ -4935,10 +4935,6 @@ /obj/machinery/advanced_airlock_controller{ pixel_x = 24 }, -/obj/item/clothing/shoes/cowboy/lizard{ - pixel_x = 2; - pixel_y = -8 - }, /obj/machinery/atmospherics/pipe/layer_manifold/visible, /obj/structure/closet/emcloset/anchored, /turf/open/floor/plasteel/tech/grid, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm index 67e7dd8f1afc..4ee6ad18467c 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm @@ -1095,16 +1095,14 @@ /obj/item/clothing/suit/hooded/wintercoat/captain, /obj/item/clothing/under/rank/command/captain/nt, /obj/item/clothing/under/rank/command/captain/nt/skirt, -/obj/item/clothing/suit/toggle/lieutenant{ - desc = "Threadbare and uncharacteristically casual for Nanotrasen. Probably rebadged surplus from some colonial militia."; - name = "tattered captain's jacket" - }, /obj/item/clothing/shoes/laceup, /obj/item/clothing/head/caphat/nt, /obj/item/stock_parts/cell/gun, /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/nanotrasen/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm index 529647a0cbb9..39fb0590bc12 100644 --- a/_maps/shuttles/nanotrasen/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) @@ -3391,14 +3391,12 @@ /obj/item/clothing/under/rank/command/captain/nt, /obj/item/clothing/head/caphat/nt, /obj/item/clothing/shoes/laceup, -/obj/item/clothing/suit/toggle/lieutenant{ - desc = "Threadbare and uncharacteristically casual for Nanotrasen. Probably rebadged surplus from some colonial militia."; - name = "tattered captain's jacket" - }, /obj/item/clothing/glasses/sunglasses, /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/independent/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm similarity index 99% rename from _maps/shuttles/independent/nanotrasen_heron.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_heron.dmm index 0898de1238af..576f6ac4b2ad 100644 --- a/_maps/shuttles/independent/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/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 @@ -4337,7 +4337,6 @@ /obj/item/clothing/under/rank/security/officer/military/eng, /obj/item/clothing/suit/jacket/leather/duster, /obj/item/clothing/suit/jacket/miljacket, -/obj/item/clothing/head/beret/lt, /obj/item/clothing/mask/bandana/skull, /obj/item/clothing/suit/armor/vest/marine, /obj/item/instrument/piano_synth/headphones/spacepods{ @@ -6003,6 +6002,9 @@ name = "Helm" }, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "vC" = ( @@ -6617,8 +6619,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 +6640,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 +9269,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, @@ -9385,7 +9391,6 @@ /obj/item/clothing/under/rank/security/officer/military/eng, /obj/item/clothing/suit/jacket/leather/duster, /obj/item/clothing/suit/jacket/miljacket, -/obj/item/clothing/head/beret/lt, /obj/item/clothing/suit/armor/vest/marine, /obj/item/instrument/piano_synth/headphones/spacepods{ pixel_x = -5; @@ -9707,7 +9712,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" @@ -10755,6 +10760,9 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "NE" = ( @@ -13672,9 +13680,6 @@ /area/ship/science/robotics) "YP" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, @@ -15962,7 +15967,7 @@ oz Oa QG QG -QG +HR QG QG Ge diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 5e8f8530b1cd..9223b7746f9a 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -7697,9 +7697,6 @@ pixel_x = 8; pixel_y = 2 }, -/obj/item/storage/fancy/cigarettes/cigpack_shadyjims{ - pixel_y = 10 - }, /obj/item/lighter/greyscale{ pixel_y = 4; pixel_x = -9 diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index 970e3b2031f0..238992831180 100644 --- a/_maps/shuttles/nanotrasen/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/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index 58d4fdb918a3..c8df06b6bd75 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -3009,7 +3009,6 @@ /obj/item/clothing/shoes/jackboots, /obj/item/clothing/suit/jacket/miljacket, /obj/item/clothing/suit/jacket/leather/duster/command, -/obj/item/clothing/head/beret/lt, /obj/item/storage/backpack/messenger/com, /obj/item/storage/backpack/satchel/cap, /obj/item/storage/backpack/captain, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index 27eec1aa822e..e763b1fd0765 100644 --- a/_maps/shuttles/nanotrasen/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/roumain/srm_glaive.dmm b/_maps/shuttles/roumain/srm_glaive.dmm index 6ac9e480222e..8b5cb2a3fdc8 100644 --- a/_maps/shuttles/roumain/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/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/subshuttles/Subshuttle Catalog.txt b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt index 1d48dbc85f03..3424b7605354 100644 --- a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt +++ b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt @@ -29,7 +29,7 @@ Purpose = "Supposedly an manned torpedo. What is this. Subtest?" File Path = "_maps\shuttles\subshuttles\independant_pill.dmm" Name = "Superpill" -Size = "1x3" +Size = "3x4" Purpose = "A horrid merger of engineering platform and pill" File Path = "_maps\shuttles\subshuttles\independant_pill.dmm" @@ -37,3 +37,5 @@ Name = "Falcon Dropship" Size = "13x7" Purpose = "A Nanotrasen dropship, primarily used by Heron-Class carriers." File Path = "_maps\shuttles\subshuttles\nanotrasen_falcon.dmm" + + diff --git a/_maps/shuttles/subshuttles/frontiersmen_gut.dmm b/_maps/shuttles/subshuttles/frontiersmen_gut.dmm index cf1571f9d7d4..3b05c2224080 100644 --- a/_maps/shuttles/subshuttles/frontiersmen_gut.dmm +++ b/_maps/shuttles/subshuttles/frontiersmen_gut.dmm @@ -247,6 +247,7 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/tech, /area/ship/storage) "qh" = ( @@ -341,6 +342,7 @@ }, /obj/machinery/light/directional/east, /obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/tech, /area/ship/storage) "ue" = ( @@ -569,6 +571,7 @@ color = "#808080" }, /obj/machinery/light/directional/east, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/tech, /area/ship/storage) "RY" = ( @@ -625,6 +628,7 @@ dir = 8; color = "#808080" }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/tech, /area/ship/storage) "UA" = ( @@ -686,6 +690,7 @@ dir = 1; name = "tactical chair" }, +/obj/effect/landmark/ert_shuttle_brief_spawn, /turf/open/floor/plasteel/telecomms_floor, /area/ship/storage) diff --git a/_maps/shuttles/subshuttles/independent_kunai.dmm b/_maps/shuttles/subshuttles/independent_kunai.dmm index cdc0efe873f5..e1975d0a1737 100644 --- a/_maps/shuttles/subshuttles/independent_kunai.dmm +++ b/_maps/shuttles/subshuttles/independent_kunai.dmm @@ -99,6 +99,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 1 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/engine/hull/interior, /area/ship/storage) "al" = ( @@ -165,6 +166,7 @@ /area/ship/storage) "bY" = ( /obj/structure/chair/comfy/shuttle, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/engine/hull/interior, /area/ship/storage) "cF" = ( @@ -333,6 +335,17 @@ /obj/structure/grille, /turf/open/floor/engine/hull/reinforced, /area/ship/external) +"pk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/landmark/ert_shuttle_brief_spawn, +/turf/open/floor/plasteel/dark, +/area/ship/storage) "qn" = ( /obj/machinery/power/terminal, /obj/structure/cable, @@ -391,6 +404,7 @@ dir = 1 }, /obj/machinery/light/small/directional/south, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/engine/hull/interior, /area/ship/storage) "DP" = ( @@ -493,6 +507,7 @@ "SE" = ( /obj/structure/chair/comfy/shuttle, /obj/machinery/light/small/directional/north, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/engine/hull/interior, /area/ship/storage) "Wx" = ( @@ -572,7 +587,7 @@ gs Pq hJ bG -RO +pk bG hJ Pq diff --git a/_maps/shuttles/subshuttles/independent_sugarcube.dmm b/_maps/shuttles/subshuttles/independent_sugarcube.dmm index 865e0da78091..11a8de916cd6 100644 --- a/_maps/shuttles/subshuttles/independent_sugarcube.dmm +++ b/_maps/shuttles/subshuttles/independent_sugarcube.dmm @@ -79,6 +79,7 @@ pixel_y = 23; pixel_x = -13 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "j" = ( @@ -86,6 +87,7 @@ dir = 4 }, /obj/structure/window/reinforced/spawner/west, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "k" = ( @@ -95,6 +97,7 @@ /obj/structure/window/reinforced/spawner/west, /obj/structure/window/reinforced/spawner/east, /obj/machinery/light/directional/north, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "l" = ( @@ -107,6 +110,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 4 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "n" = ( @@ -147,6 +151,7 @@ }, /obj/structure/window/reinforced/spawner/west, /obj/structure/window/reinforced/spawner/east, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "s" = ( @@ -223,6 +228,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "A" = ( @@ -274,6 +280,7 @@ }, /obj/structure/window/reinforced/spawner/west, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "G" = ( @@ -283,6 +290,7 @@ /obj/structure/window/reinforced/spawner/west, /obj/structure/window/reinforced/spawner/east, /obj/machinery/light/directional/south, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "H" = ( @@ -294,6 +302,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 8 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "J" = ( @@ -308,6 +317,10 @@ "L" = ( /turf/closed/wall, /area/ship/engineering) +"T" = ( +/obj/effect/landmark/ert_shuttle_brief_spawn, +/turf/open/floor/plating, +/area/ship/storage) "Z" = ( /turf/closed/wall/rust, /area/ship/engineering) @@ -380,7 +393,7 @@ b d l l -y +T l J "} diff --git a/_maps/shuttles/subshuttles/independent_superpill.dmm b/_maps/shuttles/subshuttles/independent_superpill.dmm index fc0dacddc501..de9046d091a4 100644 --- a/_maps/shuttles/subshuttles/independent_superpill.dmm +++ b/_maps/shuttles/subshuttles/independent_superpill.dmm @@ -1,208 +1,219 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer2, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible/layer4{ - dir = 5 +/obj/structure/catwalk, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 }, /obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer1{ - dir = 4 - }, -/obj/structure/catwalk, /turf/open/floor/plating/rust, /area/ship/storage) "b" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer2, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 +/obj/structure/catwalk, +/obj/machinery/conveyor_switch/oneway{ + id = "superpill_start"; + name = "jumpstart device"; + desc = "A conveyor control switch. It appears to only go in one direction; once you've pulled this, there's no going back." }, -/obj/machinery/atmospherics/components/binary/pump/on/layer1{ +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ dir = 4 }, -/obj/structure/catwalk, /turf/open/floor/plating/rust, /area/ship/storage) "f" = ( -/obj/machinery/power/emitter/welded{ - dir = 4 +/obj/structure/window/plasma/reinforced, +/obj/structure/window/plasma/reinforced/spawner/west, +/obj/structure/window/plasma/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2{ +/obj/machinery/conveyor{ dir = 4; - layer = 3 + id = "superpill_start" }, -/obj/machinery/atmospherics/pipe/simple/general/visible/layer1{ - dir = 10 +/obj/item/reagent_containers/pill/floorpill{ + pixel_y = -5; + pixel_x = -1 + }, +/obj/item/reagent_containers/pill/floorpill{ + pixel_x = 6 + }, +/obj/item/reagent_containers/pill/floorpill{ + pixel_x = 4; + pixel_y = 7 + }, +/turf/open/floor/plating{ + initial_gas_mix = "n2o=28, n2=72;TEMP=7" }, -/obj/structure/catwalk, -/turf/open/floor/plating/rust, /area/ship/storage) "h" = ( +/obj/structure/catwalk, /obj/machinery/power/shuttle/engine/electric{ dir = 4 }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2, -/obj/machinery/atmospherics/pipe/simple/general/visible/layer4, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/catwalk, /obj/docking_port/mobile{ can_move_docking_ports = 1; dir = 4; port_direction = 2; preferred_direction = 4 }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/layer_manifold/visible, /turf/open/floor/plating/rust, /area/ship/storage) "i" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer2, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - filter_types = list("co2","bz","o2","plasma","water_vapor","nob","no2","tritium","freon","pluox","stim") - }, +/obj/structure/window/plasma/reinforced/spawner/north, +/obj/structure/window/plasma/reinforced/spawner/east, +/obj/structure/window/plasma/reinforced, /obj/machinery/power/supermatter_crystal/shard, -/obj/structure/window/plasma/reinforced/spawner{ - pixel_y = -7 - }, -/obj/structure/window/plasma/reinforced/spawner/east{ - pixel_x = 7 +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ + dir = 10 }, -/obj/structure/window/plasma/reinforced/spawner/north{ - pixel_y = 7 +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 }, -/obj/structure/window/plasma/reinforced/spawner/west{ - pixel_x = -7 +/obj/effect/decal/remains/human{ + name = "environmental storytelling" }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer4, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w{ - layer = 3 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + filter_types = list("co2","bz","o2","plasma","water_vapor","nob","no2","tritium","freon","pluox","stim") }, /turf/open/floor/plating{ initial_gas_mix = "n2o=28, n2=72;TEMP=7" }, /area/ship/storage) "l" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, +/obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/general/visible/layer4{ +/obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 6 }, -/obj/structure/catwalk, +/obj/structure/sign/warning/incident, /turf/open/floor/plating/rust, /area/ship/storage) "m" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w{ - layer = 3 - }, -/obj/machinery/atmospherics/components/unary/passive_vent/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer4, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer2, -/obj/structure/catwalk, /obj/machinery/computer/helm/retro{ dir = 8 }, +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, /turf/open/floor/plating/rust, /area/ship/storage) "s" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer4, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer2, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 4; - layer = 3 +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/general/visible/layer1{ +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible/layer4{ dir = 9 }, -/obj/structure/catwalk, /turf/open/floor/plating/rust, /area/ship/storage) "x" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 8 - }, /obj/structure/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/emitter/welded/upgraded{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2{ + dir = 4; + layer = 3 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4; + layer = 3 + }, /turf/open/floor/plating/rust, /area/ship/storage) "C" = ( -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /obj/machinery/power/apc/auto_name/directional/west{ pixel_x = -25 }, -/obj/structure/window/reinforced/tinted, +/obj/item/tank/internals/plasma/full, +/obj/item/clothing/head/helmet/space/orange, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/pickaxe/improvised, +/obj/item/clothing/suit/space/orange, +/obj/item/storage/toolbox/mechanical/old, +/obj/item/clothing/mask/gas, +/obj/structure/bed, +/obj/machinery/light/floor, +/obj/machinery/holopad, +/obj/machinery/door/window, /obj/structure/window/reinforced/tinted{ dir = 8 }, /obj/structure/window/reinforced/tinted{ - dir = 1 + dir = 4 + }, +/obj/structure/fans/tiny, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" }, /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/door/window{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, /turf/open/floor/plasteel/tech/grid, /area/ship/storage) "R" = ( -/obj/machinery/power/rad_collector/anchored, +/obj/structure/catwalk, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible/layer4{ +/obj/machinery/power/rad_collector/anchored, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer4, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w, -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible/layer4{ + dir = 9 + }, /turf/open/floor/plating/rust, /area/ship/storage) "W" = ( -/obj/item/clothing/mask/gas, -/obj/structure/bed, -/obj/machinery/light/floor, -/obj/structure/fans/tiny, -/obj/machinery/door/window{ - dir = 1 - }, -/obj/structure/window/reinforced/tinted{ - dir = 4 - }, -/obj/structure/cable, +/obj/structure/catwalk, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "4-8" }, -/obj/machinery/airalarm/directional/west, -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ + dir = 8 }, -/obj/machinery/door/window, -/obj/machinery/atmospherics/pipe/simple/general/visible/layer1, -/obj/machinery/holopad, -/obj/item/storage/toolbox/mechanical/old, -/obj/item/clothing/suit/space/orange, -/obj/item/pickaxe/improvised, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/head/helmet/space/orange, -/obj/item/tank/internals/plasma/full, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 8 }, -/turf/open/floor/plasteel/tech/grid, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/obj/machinery/atmospherics/pipe/manifold/general/visible/layer4{ + dir = 1 + }, +/turf/open/floor/plating/rust, /area/ship/storage) (1,1,1) = {" diff --git a/_maps/shuttles/subshuttles/nanotrasen_falcon.dmm b/_maps/shuttles/subshuttles/nanotrasen_falcon.dmm index 566469a7e219..e88bfc4bd5f2 100644 --- a/_maps/shuttles/subshuttles/nanotrasen_falcon.dmm +++ b/_maps/shuttles/subshuttles/nanotrasen_falcon.dmm @@ -36,6 +36,7 @@ dir = 8 }, /obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "e" = ( @@ -125,6 +126,7 @@ dir = 4; pixel_y = 8 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/telecomms_floor, /area/ship/storage/eva) "m" = ( @@ -146,6 +148,7 @@ /obj/machinery/vending/wallmed{ pixel_y = -28 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "p" = ( @@ -174,6 +177,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "s" = ( @@ -307,6 +311,7 @@ /obj/effect/turf_decal/techfloor{ dir = 8 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "C" = ( @@ -379,6 +384,7 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "J" = ( @@ -394,6 +400,7 @@ dir = 4 }, /obj/item/radio/intercom/directional/north, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "L" = ( @@ -440,6 +447,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/effect/landmark/ert_shuttle_brief_spawn, /turf/open/floor/plasteel/patterned/brushed, /area/ship/storage/eva) "N" = ( @@ -535,6 +543,7 @@ dir = 8; pixel_y = 16 }, +/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/telecomms_floor, /area/ship/storage/eva) "U" = ( diff --git a/_maps/shuttles/syndicate/syndicate_aegis.dmm b/_maps/shuttles/syndicate/syndicate_aegis.dmm index 94ce81e53d3d..2f79a3e98c9f 100644 --- a/_maps/shuttles/syndicate/syndicate_aegis.dmm +++ b/_maps/shuttles/syndicate/syndicate_aegis.dmm @@ -33,7 +33,7 @@ /obj/item/clothing/head/HoS/beret/syndicate, /obj/item/clothing/head/HoS/syndicate, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, -/obj/item/clothing/under/syndicate/aclf, +/obj/item/clothing/under/syndicate/officer, /obj/item/clothing/under/syndicate/combat, /obj/item/clothing/glasses/hud/security/sunglasses, /obj/item/clothing/neck/stripedredscarf, @@ -46,9 +46,6 @@ }, /obj/item/storage/belt/sabre, /obj/item/reagent_containers/glass/beaker/unholywater, -/obj/item/clothing/suit/armor/hos/trenchcoat{ - name = "syndicate jacket" - }, /obj/item/clothing/mask/gas/syndicate, /turf/open/floor/wood/walnut, /area/ship/crew/dorm) diff --git a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm index d6b4fcd4a79a..3a20cb1f5c26 100644 --- a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm +++ b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm @@ -12,9 +12,7 @@ /obj/effect/turf_decal/spline/fancy/opaque/syndiered{ dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/syndiered{ - dir = 2 - }, +/obj/effect/turf_decal/spline/fancy/opaque/syndiered, /turf/open/floor/plasteel/white, /area/ship/bridge) "ah" = ( @@ -494,7 +492,6 @@ /obj/effect/turf_decal/corner/opaque/syndiered/bordercorner{ dir = 4 }, -/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel/dark, /area/ship/crew) "lP" = ( @@ -892,12 +889,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 +1135,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 +1192,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 +1311,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 +1418,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 +1994,7 @@ /area/ship/engineering) (1,1,1) = {" -CR +uR YQ YQ ru @@ -2069,7 +2097,7 @@ nO "} (7,1,1) = {" YQ -CR +KA kM kM kM @@ -2081,7 +2109,7 @@ cZ jj jj jj -CR +Ah YQ "} (8,1,1) = {" @@ -2276,7 +2304,7 @@ YQ YQ YQ YQ -GV +tV bO bO dA diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index 5d1d70d59fec..3a97d9913950 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -1693,18 +1693,24 @@ /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{ name = "captain's suit storage unit"; req_access = list(20) }, -/obj/item/clothing/suit/space/hardsuit/syndi, -/obj/item/clothing/mask/gas/syndicate, /obj/machinery/light_switch{ dir = 4; pixel_x = -20 }, +/obj/item/clothing/suit/space/hardsuit/syndi/sbg, +/obj/item/clothing/mask/gas/syndicate, /turf/open/floor/carpet/black, /area/ship/bridge) "Ck" = ( @@ -2250,8 +2256,9 @@ req_access = list(56) }, /obj/item/clothing/shoes/magboots/syndie, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, /obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/suit/space/syndicate, +/obj/item/clothing/head/helmet/space/syndicate, /turf/open/floor/carpet/red, /area/ship/cargo/office) "KX" = ( @@ -2336,6 +2343,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 +2511,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 +2889,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 +2905,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) @@ -3051,7 +3076,7 @@ a_intent = "help"; desc = "A small goliath pup. Its tendrils have not yet fully grown. Someone, somehow, has managed to fit a large dog collar around its neck."; environment_smash = 0; - faction = list("neutral"); + faction = list("neutral","playerSyndicate"); mob_size = 2; move_force = 1000; move_resist = 1000; @@ -3311,7 +3336,7 @@ sE "} (2,1,1) = {" nn -BG +BR ir PL SP @@ -3328,7 +3353,7 @@ sE nX dU pi -BG +NA "} (3,1,1) = {" nn @@ -3578,13 +3603,13 @@ UX GV GV GV -BG +NA nn Zb "} (15,1,1) = {" nn -Qz +UN cs cs XU @@ -3836,13 +3861,13 @@ mL "} (27,1,1) = {" nn -Qz +Up Ap Jv oQ VC Ap -Qz +Up nn nn nn diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 2ec2677dde07..3da232da75dc 100644 --- a/_maps/shuttles/syndicate/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, @@ -2325,12 +2337,12 @@ dir = 4 }, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/mask/breath, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, /obj/machinery/light_switch{ pixel_x = -13; pixel_y = 22 }, +/obj/item/clothing/suit/space/hardsuit/syndi/hl, +/obj/item/clothing/mask/gas/syndicate, /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) "vT" = ( @@ -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, @@ -3127,23 +3145,20 @@ req_access_txt = "20" }, /obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/under/syndicate/aclf, -/obj/item/clothing/suit/armor/vest/security/hos{ - name = "Syndicate jacket" - }, +/obj/item/clothing/under/syndicate/officer, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/clothing/gloves/krav_maga/combatglovesplus, /obj/item/clothing/shoes/jackboots, /obj/item/clothing/glasses/thermal/eyepatch, /obj/item/clothing/head/HoS/beret/syndicate, /obj/item/clothing/head/HoS/syndicate, -/obj/item/clothing/head/aclfcap{ +/obj/item/clothing/head/gorlexcap{ pixel_x = 5; pixel_y = -4 }, /obj/item/gun/ballistic/derringer/traitor, /obj/item/clothing/under/syndicate/sniper, -/obj/item/clothing/suit/aclf, +/obj/item/clothing/suit/gorlex, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/radio/headset/syndicate/alt/leader, @@ -3321,7 +3336,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, @@ -3792,8 +3807,8 @@ icon_state = "0-8" }, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/mask/breath, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, +/obj/item/clothing/suit/space/hardsuit/syndi/hl, +/obj/item/clothing/mask/gas/syndicate, /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) "JH" = ( @@ -4231,7 +4246,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, @@ -4363,8 +4378,8 @@ /obj/machinery/camera/autoname{ dir = 8 }, -/obj/item/clothing/mask/breath, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, +/obj/item/clothing/suit/space/hardsuit/syndi/hl, +/obj/item/clothing/mask/gas/syndicate, /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) "PK" = ( @@ -4440,7 +4455,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 +5189,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 +5446,7 @@ gN gN gN gN -OP +rh CM CM CM @@ -5484,7 +5499,7 @@ Aj Aj ti ti -XE +yw lu lu Ep @@ -6135,7 +6150,7 @@ OQ OQ OQ OQ -Rp +ea CM CM CM diff --git a/_maps/shuttles/independent/independent_litieguai.dmm b/_maps/shuttles/syndicate/syndicate_litieguai.dmm similarity index 63% rename from _maps/shuttles/independent/independent_litieguai.dmm rename to _maps/shuttles/syndicate/syndicate_litieguai.dmm index 9e64a8e4407a..055e98bd59c6 100644 --- a/_maps/shuttles/independent/independent_litieguai.dmm +++ b/_maps/shuttles/syndicate/syndicate_litieguai.dmm @@ -1,1420 +1,1783 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aL" = ( -/obj/machinery/power/smes/engineering{ - charge = 1e+006 +"am" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 }, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "1-8" + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/science) +"an" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) +"as" = ( +/obj/machinery/computer/operating{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "traumasurgery"; + name = "Surgery Shutter Control"; + pixel_x = -7; + pixel_y = 23 }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"aT" = ( -/obj/structure/rack, -/obj/effect/turf_decal/industrial/outline/red, -/obj/item/circuitboard/machine/ore_redemption, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/circuitboard/machine/rdserver, -/obj/item/circuitboard/computer/rdconsole, -/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/plasteel/tech, -/area/ship/storage) -"bl" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 15; - height = 15; - width = 30 +/area/ship/medical/surgery) +"ba" = ( +/obj/structure/mirror{ + pixel_x = 25 }, -/turf/template_noop, -/area/template_noop) +/obj/structure/sink{ + dir = 8; + pixel_y = 0; + pixel_x = 12 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) "bu" = ( -/obj/machinery/door/airlock/medical{ - dir = 4; - name = "Storage Room" +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Starboard Engines" + }, +/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/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/tech/grid, +/area/ship/maintenance/starboard) +"bv" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/red/arrow_ccw, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"bD" = ( /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/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/storage) -"bC" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/autolathe, -/turf/open/floor/plasteel/tech, -/area/ship/storage) -"bX" = ( -/obj/machinery/door/poddoor/preopen{ - id = "traumabridge"; - name = "Window Blast Door" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, +/obj/machinery/door/airlock/command{ + dir = 8; + name = "Bridge" + }, +/turf/open/floor/plasteel/tech/grid, /area/ship/bridge) -"ck" = ( -/obj/machinery/airalarm/directional/east, -/obj/structure/sign/poster/retro/smile{ - pixel_y = -32 +"bQ" = ( +/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/frame/computer{ +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 1 }, -/obj/effect/turf_decal/industrial/hatch/red, +/obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel/white, -/area/ship/medical) -"cn" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/turf/open/floor/plasteel, -/area/ship/cargo) -"cs" = ( -/obj/machinery/defibrillator_mount/loaded{ - pixel_y = -32 +/area/ship/hallway/central) +"bT" = ( +/obj/machinery/smartfridge/bloodbank/preloaded{ + density = 0; + pixel_y = 0; + pixel_x = 32 }, -/obj/effect/turf_decal/industrial/loading{ - dir = 4 +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/stasis{ + dir = 8 }, /turf/open/floor/plasteel/tech, /area/ship/medical) -"cI" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 4 +"cd" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"cX" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/machinery/door/poddoor/preopen{ - id = "traumawindows"; - name = "Window Blast Door" +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"dH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"dI" = ( -/obj/machinery/computer/cargo/express, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"dR" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"cK" = ( /obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor{ - id = "traumaenginel" + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/small/directional/east, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plating, /area/ship/maintenance/port) -"ed" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/medical, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/tank/internals/emergency_oxygen/engi, -/turf/open/floor/plasteel/tech, -/area/ship/storage) -"el" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9 +"cL" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/machinery/light/small/directional/east, -/obj/machinery/cryopod{ +/obj/item/paper_bin, +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/computer/cryopod/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"eJ" = ( -/obj/machinery/holopad/emergency/command, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/obj/effect/turf_decal/industrial/hatch/red, +/obj/item/folder/white, +/obj/item/pen, +/turf/open/floor/plating, +/area/ship/cargo) +"dl" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/airlock/medical{ + name = "Research" }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" }, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/bridge) -"eM" = ( -/obj/machinery/door/window/brigdoor/southright{ - req_access_txt = "5" +/turf/open/floor/plasteel/tech/grid, +/area/ship/science) +"eo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/under/rank/security/brig_phys, -/obj/item/clothing/under/rank/security/brig_phys, -/obj/item/clothing/under/rank/security/brig_phys, -/obj/item/clothing/suit/toggle/labcoat/paramedic, -/obj/item/clothing/suit/toggle/labcoat/paramedic, -/obj/item/clothing/suit/toggle/labcoat/paramedic, -/obj/item/clothing/head/soft/paramedic, -/obj/item/clothing/head/soft/paramedic, -/obj/item/clothing/head/soft/paramedic, -/obj/item/storage/backpack/ert/medical, -/obj/item/storage/backpack/ert/medical, -/obj/item/storage/backpack/ert/medical, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/closet/secure_closet/wall{ - dir = 8; - icon_state = "sec_wall"; - name = "clothing locker"; - pixel_x = 28; - req_access_txt = "5" +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/medical{ + name = "Bathroom" }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/toilet) "eS" = ( -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/ship/cargo) -"fa" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel/grimy, -/area/ship/crew) -"fe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +"eT" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/computer/rdconsole/core{ + dir = 4 }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-4" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -16 }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"fp" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/maintenance/port) -"fT" = ( -/obj/machinery/stasis, -/obj/effect/turf_decal/industrial/outline/red, /obj/machinery/light/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/medical) -"go" = ( -/obj/effect/turf_decal/corner/opaque/red/full, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plasteel/tech, +/area/ship/science) +"fe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"gL" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo) -"gO" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "traumashield" +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/science) +"fo" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, /obj/machinery/door/firedoor/border_only, -/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, +/obj/machinery/door/airlock/medical{ + name = "Surgery" }, -/obj/machinery/door/poddoor/shutters{ - id = "traumalobby"; - name = "Lobby" +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/engine, -/area/ship/cargo) -"hq" = ( -/turf/open/floor/plasteel/stairs/right{ +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical/surgery) +"fp" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/maintenance/port) +"fW" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/machinery/holopad/emergency/medical, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 8 }, -/area/ship/storage) -"hv" = ( -/obj/effect/turf_decal/arrows/red{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/medical) +"fX" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 8 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = 32 }, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"gf" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/machinery/airalarm/directional/south, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/tech, /area/ship/storage) +"gL" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/cargo) +"gW" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) "hF" = ( /obj/structure/table/reinforced, /obj/machinery/fax, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"hH" = ( -/obj/machinery/computer/helm, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) "hQ" = ( /obj/structure/table/optable, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/medical) -"hT" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/siding/white/end, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/turf/open/floor/plasteel/tech, +/area/ship/medical/surgery) +"hS" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/machinery/firealarm/directional/west, +/obj/item/reagent_containers/glass/bottle/formaldehyde, +/obj/item/storage/box/syringes, +/obj/item/storage/box/bodybags, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-4" }, /obj/machinery/light_switch{ - dir = 1; - pixel_x = -13; - pixel_y = -16 + pixel_x = 11; + pixel_y = 22 }, -/turf/open/floor/vault, -/area/ship/storage) -"ie" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "lobbydoors"; - name = "Sickbay" +/obj/structure/closet/secure_closet{ + name = "mortuary locker" }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/plasteel/tech, +/area/ship/medical/surgery) +"hW" = ( +/obj/structure/dresser{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel/white, -/area/ship/cargo) -"iA" = ( -/turf/closed/wall/mineral/titanium, +/turf/open/floor/carpet/cyan, /area/ship/crew) -"iJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +"ih" = ( +/obj/machinery/power/smes/shuttle/precharged{ dir = 4 }, -/obj/machinery/airalarm/directional/south, -/obj/structure/sign/poster/official/cleanliness{ - pixel_x = -32 +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"iP" = ( -/obj/machinery/power/smes/engineering{ - charge = 1e+006 +/obj/machinery/door/poddoor{ + dir = 8; + id = "traumaenginel" }, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/window/reinforced{ + dir = 8 }, /turf/open/floor/plating, -/area/ship/maintenance/starboard) -"iW" = ( -/turf/open/floor/carpet/cyan, -/area/ship/crew) -"jx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/door/firedoor/border_only{ +/area/ship/maintenance/port) +"in" = ( +/obj/structure/bed{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/door/window/westleft{ - name = "Pharmacy" +/obj/structure/curtain/bounty, +/obj/item/bedsheet/blue{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"kC" = ( -/obj/machinery/door/window/brigdoor/southleft{ - req_access_txt = "5" +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"iz" = ( +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/storage/belt/medical/surgery, -/obj/item/storage/belt/medical/paramedic, -/obj/item/clothing/gloves/color/latex/nitrile, -/obj/item/clothing/gloves/color/latex/nitrile, -/obj/item/clothing/gloves/color/latex/nitrile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/structure/closet/secure_closet/wall{ - dir = 4; - icon_state = "sec_wall"; - name = "equipment locker"; - pixel_x = -28; - req_access_txt = "5" + dir = 4 }, -/obj/item/healthanalyzer/advanced, -/obj/item/healthanalyzer/advanced, -/obj/item/healthanalyzer/advanced, -/obj/item/clothing/glasses/hud/health/sunglasses, -/obj/item/clothing/glasses/hud/health/sunglasses, -/obj/item/clothing/glasses/hud/health/sunglasses, -/obj/item/storage/belt/medical/paramedic, -/turf/open/floor/plasteel/dark, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/brushed, /area/ship/crew) -"kH" = ( -/obj/item/radio/intercom/directional/east, -/obj/machinery/power/terminal, -/obj/structure/cable/yellow, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"kO" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "traumashield2" +"iA" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew) +"iC" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/wood/ebony, +/area/ship/crew) +"iQ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, /obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 8 + dir = 1 }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"iW" = ( +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"jh" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood/ebony, +/area/ship/crew) +"jK" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning, +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 1 }, /obj/machinery/door/poddoor{ - dir = 4; + dir = 1; id = "traumaramp" }, /obj/machinery/door/firedoor/border_only{ - dir = 8 + dir = 1 }, /turf/open/floor/engine, -/area/ship/storage) -"kP" = ( -/obj/structure/table/glass, -/obj/structure/window/reinforced{ - dir = 4 +/area/ship/storage/eva) +"jU" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/window/reinforced{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding/white{ + dir = 8 }, -/obj/item/clothing/mask/surgical{ - pixel_y = 6 +/obj/effect/turf_decal/siding/white{ + dir = 4 }, -/obj/item/storage/backpack/duffelbag/med/surgery{ - pixel_y = 10 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"ke" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/curtain/cloth, +/turf/open/floor/plating, +/area/ship/science) +"kh" = ( +/obj/machinery/power/terminal{ + dir = 8 }, -/obj/item/clothing/suit/apron/surgical{ - pixel_y = 6 +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = 5; - pixel_y = -1 +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"kw" = ( +/obj/structure/chair{ + dir = 8 }, -/obj/item/reagent_containers/medigel/sterilizine, -/turf/open/floor/plasteel/tech/grid, -/area/ship/medical) -"kR" = ( -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"lb" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#332521" }, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +/turf/open/floor/wood/ebony, +/area/ship/crew) +"la" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage/eva) +"li" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 1 }, -/obj/machinery/light_switch{ - pixel_x = 19; - pixel_y = 13; - dir = 8 +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" }, /turf/open/floor/plasteel/white, -/area/ship/medical) -"lj" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 +/area/ship/hallway/central) +"lJ" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -16 }, -/turf/open/floor/plasteel/tech, -/area/ship/medical) -"lF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"lS" = ( +/obj/structure/chair, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"lX" = ( +/obj/structure/chair{ dir = 1 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"mo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/door/window/westright{ - name = "Storage" +/obj/machinery/photocopier, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/carpet/cyan, +/area/ship/hallway/central) +"mu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"lH" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-8" }, -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/plasteel/mono/white, +/area/ship/hallway/central) +"mx" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/autolathe, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/tech, +/area/ship/science) +"mP" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/maintenance/port) +"na" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/ship/cargo) -"lY" = ( -/obj/machinery/door/airlock/medical{ - dir = 4; - name = "Crew Quarters" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +"nb" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "2-8" }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/medical/surgery) +"nu" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/bridge) +"nF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/carpet/cyan, /area/ship/crew) -"mw" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4; - name = "Port Engines" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +"nI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/medical{ + name = "Treatment Center" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical) +"nW" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/opaque/red/filled/line, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"mG" = ( -/obj/machinery/firealarm/directional/north, -/obj/structure/sign/warning/gasmask{ - pixel_x = -32 - }, -/obj/item/stack/marker_beacon/thirty, -/obj/item/stack/marker_beacon/thirty, -/obj/item/stack/marker_beacon/thirty, -/obj/item/stack/marker_beacon/thirty, -/obj/structure/rack, -/obj/item/pickaxe/emergency{ - desc = "For extracting yourself from rough landings, and getting to the even rougher ones"; - name = "Medical Retrieval Tool" +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -16 }, -/obj/item/pickaxe/emergency{ - desc = "For extracting yourself from rough landings, and getting to the even rougher ones"; - name = "Medical Retrieval Tool" +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"oc" = ( +/obj/effect/turf_decal/corner/opaque/red/full, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/pickaxe/emergency{ - desc = "For extracting yourself from rough landings, and getting to the even rougher ones"; - name = "Medical Retrieval Tool" +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"ot" = ( +/obj/machinery/door/poddoor/preopen{ + dir = 8; + id = "traumabridge"; + name = "Window Blast Door" }, -/obj/effect/turf_decal/industrial/outline/red, -/turf/open/floor/plasteel/tech/grid, -/area/ship/storage) -"mO" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/dark, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, /area/ship/bridge) -"mP" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/maintenance/port) -"mQ" = ( -/obj/structure/window/reinforced{ - dir = 8 +"oA" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/outline/red, -/obj/structure/window/reinforced{ - dir = 1 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/closet/secure_closet{ - icon_state = "med"; - name = "medicine locker" +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/item/storage/firstaid/brute, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/box/medipens, -/obj/item/storage/box/syringes, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/regular, /turf/open/floor/plasteel/white, -/area/ship/medical) -"nl" = ( -/obj/machinery/light/small/directional/west, +/area/ship/cargo) +"pf" = ( +/obj/docking_port/stationary{ + dwidth = 8; + height = 15; + width = 30 + }, +/turf/template_noop, +/area/template_noop) +"pK" = ( +/turf/open/floor/carpet/cyan, +/area/ship/hallway/central) +"pQ" = ( +/obj/effect/turf_decal/corner/opaque/red/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/number/five{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"nm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-8" }, -/obj/effect/turf_decal/corner/opaque/white/mono, /turf/open/floor/plasteel/white, -/area/ship/medical) -"np" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/carpet/cyan, -/area/ship/crew) -"nu" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/bridge) -"nw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 +/area/ship/cargo) +"qr" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "traumashield2" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"oH" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning, /obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/door/poddoor{ + id = "traumaramp" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"oQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft, +/turf/open/floor/engine, +/area/ship/storage/eva) +"qv" = ( +/obj/structure/table, /obj/machinery/button/door{ dir = 1; - id = "lobbydoors"; - name = "Lobby Door Control"; - normaldoorcontrol = 1; - pixel_x = 11; - pixel_y = -4 + id = "traumastore"; + name = "Storage Shutter Control"; + pixel_x = -7; + pixel_y = -22 }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/industrial/hatch/red, -/obj/machinery/button/shieldwallgen{ - dir = 1; - id = "traumashield"; - name = "Lobby Holoshield"; - pixel_x = -6; - pixel_y = 8 - }, -/obj/machinery/button/door{ - dir = 1; - id = "lobbydoors"; - name = "Lobby Door Bolts Control"; - normaldoorcontrol = 1; - pixel_x = 11; - pixel_y = 7; - specialfunctions = 4 +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/masks, +/obj/item/storage/box/masks, +/obj/item/storage/box/pillbottles, +/obj/structure/closet/wall/white/chem{ + dir = 4; + name = "Medical Supplies Locker"; + pixel_x = -28 }, -/obj/machinery/button/door{ - dir = 1; - id = "traumalobby"; - name = "Lobby Shutter Control"; - pixel_x = -6; - pixel_y = -4 +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"qA" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/science) +"qV" = ( +/obj/machinery/door/poddoor/preopen{ + id = "traumawindows"; + name = "Window Blast Door" }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, -/area/ship/cargo) -"oS" = ( +/area/ship/medical) +"qW" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 + dir = 8 + }, +/mob/living/simple_animal/hostile/retaliate/poison/snake{ + desc = "The CMO's pet snake. The question of what species it actually belongs to is a mystery for the ages."; + dir = 8; + name = "\proper Deuce" + }, +/obj/structure/bed/dogbed{ + anchored = 1; + desc = "A comfy-looking... snake bed? There's bits of shed scales stuck in the bedding..."; + name = "snake bed" + }, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"rk" = ( +/obj/machinery/rnd/production/techfab/department/medical, +/obj/effect/turf_decal/industrial/hatch/red, +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/tech, +/area/ship/science) +"rn" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/corner/opaque/white/mono, /turf/open/floor/plasteel/white, -/area/ship/medical) -"oX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/area/ship/cargo) +"rA" = ( +/obj/structure/cable, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 1; + id = "traumashield" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "traumalobby"; + name = "Lobby" + }, +/turf/open/floor/engine, +/area/ship/cargo) +"rJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/power/terminal{ + dir = 8 + }, /obj/structure/cable{ icon_state = "0-4" }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -12; - pixel_y = -13 - }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"pK" = ( -/obj/structure/table/reinforced, -/obj/item/folder/blue, -/obj/item/pen/fourcolor, -/obj/item/stamp/captain{ - pixel_x = -7; - pixel_y = -1 - }, -/obj/machinery/button/door{ - id = "traumawindows"; - name = "Window Shutters"; - pixel_x = 5; - pixel_y = 7 +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, /obj/machinery/button/door{ - id = "traumabridge"; - name = "Bridge Window Shutters"; + dir = 2; + id = "traumaenginel"; + name = "Engine Shutter Control"; pixel_x = -5; - pixel_y = 7 + pixel_y = 22 }, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/bridge) -"qc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel, -/area/ship/crew) -"qd" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 +/turf/open/floor/plating, +/area/ship/maintenance/port) +"rS" = ( +/obj/structure/toilet{ + dir = 8 }, -/obj/structure/mirror{ - pixel_x = 25 +/obj/structure/window/reinforced/tinted/frosted, +/obj/machinery/door/window/survival_pod{ + dir = 8 }, -/obj/machinery/firealarm/directional/north, +/obj/structure/curtain, /turf/open/floor/plasteel/freezer, /area/ship/crew/toilet) -"qQ" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ +"rT" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/medical/surgery) +"sd" = ( +/obj/machinery/stasis{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/light/directional/north, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"sx" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/stairs/right{ + dir = 1 + }, +/area/ship/storage/eva) +"sC" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "1-4" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"rh" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-4" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"ru" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/docking_port/mobile{ + dir = 4; + launch_status = 0; + preferred_direction = 4; + port_direction = 2 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "traumalobby"; + name = "Lobby" + }, +/turf/open/floor/engine, +/area/ship/cargo) +"sI" = ( +/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/light/small/directional/east, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"sO" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/bodycontainer/morgue{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/tech, +/area/ship/medical/surgery) +"tb" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/reagent_dispensers/watertank, +/obj/item/mop, +/obj/item/reagent_containers/glass/bucket, +/obj/item/storage/bag/trash, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"tn" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/storage/eva) +"tF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 8 }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/patterned/brushed, /area/ship/medical) -"rM" = ( -/obj/machinery/light/small/directional/south{ - pixel_x = 17 +"tI" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + dir = 8; + id = "traumawindows"; + name = "Window Blast Door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"tJ" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -12 }, -/obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -13; - pixel_y = -16 +/obj/structure/closet/crate/freezer{ + name = "organ freezer" + }, +/obj/item/organ/heart/cybernetic, +/obj/item/organ/heart/cybernetic, +/obj/item/organ/ears/cybernetic, +/obj/item/organ/ears/cybernetic, +/obj/item/organ/liver/cybernetic, +/obj/item/organ/liver/cybernetic, +/obj/item/organ/lungs/cybernetic, +/obj/item/organ/lungs/cybernetic, +/obj/item/organ/stomach/cybernetic, +/obj/item/organ/stomach/cybernetic, +/obj/item/organ/eyes/robotic, +/obj/item/organ/eyes/robotic, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"tO" = ( +/turf/open/floor/plasteel/mono/white, +/area/ship/hallway/central) +"tT" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/item/clothing/under/rank/medical/gown, +/obj/item/clothing/under/rank/medical/gown, +/obj/item/clothing/under/rank/medical/gown/blue, +/obj/item/clothing/under/rank/medical/gown/green, +/obj/item/clothing/under/rank/medical/gown/pink, +/obj/item/clothing/shoes/sandal/slippers, +/obj/item/clothing/shoes/sandal/slippers, +/obj/item/clothing/shoes/sandal/slippers, +/obj/item/clothing/shoes/sandal/slippers, +/obj/effect/turf_decal/industrial/outline/red, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"uc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/turf/open/floor/carpet/nanoweave, -/area/ship/bridge) -"se" = ( -/obj/item/clothing/suit/armor/vest/alt, -/obj/item/clothing/suit/armor/vest/alt, -/obj/item/clothing/suit/armor/vest/alt, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/airalarm/directional/north, -/obj/item/clothing/head/helmet/sec, -/obj/item/clothing/head/helmet/sec, -/obj/item/clothing/head/helmet/sec, -/obj/structure/closet/secure_closet/wall{ - dir = 8; - icon_state = "sec_wall"; - name = "armor locker"; - pixel_x = 28; - req_access_txt = "5" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5; + color = "#332521" + }, +/turf/open/floor/wood/ebony, /area/ship/crew) -"sq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +"up" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/patterned/brushed, /area/ship/medical) -"su" = ( -/obj/effect/landmark/start/paramedic, -/turf/open/floor/plasteel, -/area/ship/crew) -"sz" = ( +"us" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -19; + pixel_x = -8 + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"uE" = ( /obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 4 }, -/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"uT" = ( +/obj/effect/turf_decal/industrial/loading, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = 0; + pixel_x = -32 + }, +/obj/structure/sink{ + dir = 4; + pixel_y = 0; + pixel_x = -13 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical/surgery) +"uU" = ( +/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/firedoor/border_only{ dir = 1 }, -/obj/item/radio/intercom/wideband/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"sH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/medical{ + name = "Storage Room" }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"vj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, +/obj/structure/closet/secure_closet/wall{ + icon_state = "sec_wall"; + name = "firearms locker"; + req_access_txt = "5"; + pixel_y = 28 + }, +/obj/item/ammo_box/magazine/m10mm/rubber, +/obj/item/ammo_box/magazine/m10mm/rubber, +/obj/item/ammo_box/magazine/m10mm/rubber, +/obj/item/ammo_box/magazine/m10mm/ap, +/obj/item/ammo_box/magazine/m10mm/ap, +/obj/item/ammo_box/magazine/m10mm/ap, +/obj/item/gun/ballistic/automatic/pistol, +/obj/item/gun/ballistic/automatic/pistol, +/obj/item/gun/ballistic/automatic/pistol, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/crew) +"vn" = ( +/obj/machinery/smartfridge/organ{ + density = 0; + pixel_x = 32 + }, +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"vx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/obj/structure/catwalk/over, /turf/open/floor/plating, -/area/ship/maintenance/port) -"sM" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "2-4" +/area/ship/external) +"vE" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Helm" }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/landmark/start/captain, +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"wb" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/science) +"wc" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Starboard Engines" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"wp" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/rnd/server, +/turf/open/floor/plasteel/tech, +/area/ship/science) +"wr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/airalarm/directional/north, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"wt" = ( +/obj/structure/closet/emcloset/wall{ + pixel_y = 28 + }, +/obj/effect/turf_decal/number/two, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"xa" = ( +/obj/machinery/power/terminal{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"tq" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/industrial/warning{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"xp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/official/help_others{ + pixel_y = 32 }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/ship/crew) -"tE" = ( /obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 1 }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"xB" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 4 + }, /obj/item/kirbyplants/random, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/white, /area/ship/cargo) -"tO" = ( -/obj/structure/closet/secure_closet{ - icon_state = "med_secure"; - name = "medical intern's locker" +"xF" = ( +/obj/machinery/computer/helm{ + dir = 8 }, -/obj/machinery/airalarm/directional/south, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/clothing/shoes/sneakers/blue, -/obj/item/clothing/shoes/sneakers/blue, -/obj/item/clothing/shoes/sneakers/blue, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/item/clothing/under/rank/medical/paramedic/emt, -/obj/item/clothing/under/rank/medical/paramedic/emt, -/obj/item/clothing/under/rank/medical/paramedic/emt, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"xN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/siding/wood{ + dir = 6; + color = "#332521" + }, +/turf/open/floor/wood/ebony, /area/ship/crew) -"tT" = ( -/obj/machinery/light/directional/east, -/obj/structure/chair{ +"xW" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/item/stack/sheet/mineral/plasma/twenty, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"yf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"tW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/chair/office/light{ - dir = 1 +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew) +"yn" = ( +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/effect/landmark/start/chemist, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"uk" = ( -/obj/machinery/modular_computer/console/preset/command{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "traumashield" }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/carpet/nanoweave, -/area/ship/bridge) -"uo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ship/medical) -"uq" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/structure/window/reinforced, -/obj/item/paper_bin, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/industrial/hatch/red, -/obj/item/folder/white, -/obj/item/pen, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "traumalobby"; + name = "Lobby" + }, +/turf/open/floor/engine, /area/ship/cargo) -"ur" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 1 +"yQ" = ( +/obj/machinery/computer/med_data{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"yT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"uE" = ( -/obj/structure/window/reinforced/tinted/frosted{ - dir = 8 +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/industrial/warning/corner{ dir = 8 }, -/obj/machinery/rnd/production/techfab/department/medical, -/obj/effect/turf_decal/industrial/hatch/red, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"uN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"yX" = ( +/obj/effect/turf_decal/corner/opaque/red/full, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"zh" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/bottle/formaldehyde{ + pixel_x = 5 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/reagent_containers/glass/bottle/formaldehyde{ + pixel_x = -5 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"uW" = ( -/obj/structure/chair{ +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"zl" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line, +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/structure/sign/poster/official/soft_cap_pop_art{ - pixel_x = 32 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"ve" = ( +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"zn" = ( /obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 8 +/obj/item/folder/white{ + pixel_x = -5 }, -/obj/structure/window/reinforced, -/obj/machinery/computer/med_data/laptop{ - dir = 1 +/obj/item/stamp/cmo{ + pixel_x = -1; + pixel_y = 12 }, -/obj/item/radio/intercom/directional/west, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/industrial/hatch/red, -/turf/open/floor/plating, -/area/ship/cargo) -"vj" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 +/obj/item/pen{ + pixel_x = -5 }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" +/obj/item/paper_bin{ + pixel_x = 9 }, -/obj/machinery/light_switch{ +/obj/item/clothing/neck/stethoscope, +/obj/machinery/recharger, +/obj/machinery/light/small/directional/south, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"zo" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"zq" = ( +/obj/machinery/door/airlock/medical/glass{ dir = 8; - pixel_x = 19; - pixel_y = 13 + id_tag = "lobbydoors"; + name = "Sickbay" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"vn" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white/mono, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"zy" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning, /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/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"zD" = ( +/obj/effect/turf_decal/arrows/red{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"vr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage/eva) +"zK" = ( +/obj/machinery/power/smes/shuttle/precharged{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/door/poddoor{ + dir = 8; + id = "traumaenginer" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"vG" = ( -/obj/machinery/door/firedoor/border_only{ +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ dir = 8 }, -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/smartfridge/chemistry, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"vT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/item/storage/toolbox/electrical, -/obj/machinery/light_switch{ +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"zL" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/item/pen/fourcolor, +/obj/machinery/button/door{ dir = 8; - pixel_x = 19; - pixel_y = 13 + id = "traumawindows"; + name = "Window Shutters"; + pixel_x = 5; + pixel_y = 7 }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"wD" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1; - name = "Helm" +/obj/machinery/button/door{ + dir = 8; + id = "traumabridge"; + name = "Bridge Window Shutters"; + pixel_x = -5; + pixel_y = 7 }, -/obj/effect/landmark/start/captain, -/turf/open/floor/carpet/nanoweave, -/area/ship/bridge) -"wG" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1; - name = "Medical" +/obj/item/stamp/syndicate{ + pixel_x = -7; + pixel_y = -1 }, -/obj/effect/landmark/start/chief_medical_officer, -/turf/open/floor/carpet/nanoweave, +/turf/open/floor/carpet/cyan, /area/ship/bridge) -"wQ" = ( -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = 32 - }, -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/chem_master, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"xa" = ( -/obj/effect/turf_decal/corner/opaque/red/full, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"yi" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" +"zM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/number/zero{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 13 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"zg" = ( -/obj/machinery/light/directional/north, -/obj/structure/sign/warning/nosmoking{ - pixel_x = 32 +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/white/mono, /turf/open/floor/plasteel/white, -/area/ship/medical) -"zo" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"zt" = ( -/obj/effect/turf_decal/industrial/outline/red, -/obj/structure/window/reinforced{ +/area/ship/hallway/central) +"zS" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, -/obj/structure/bodycontainer/morgue{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ship/medical) -"zE" = ( /obj/structure/cable{ - icon_state = "4-9" + icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "4-10" +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/medical) +"zT" = ( +/obj/effect/turf_decal/number/zero, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"Ah" = ( +/obj/item/radio/intercom/directional/west, +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"Ai" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 }, -/turf/open/floor/plasteel/stairs/medium{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 8 }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/brushed, /area/ship/storage) -"zR" = ( -/obj/structure/table/reinforced, -/obj/item/folder/white{ - pixel_x = -5 +"Aj" = ( +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/obj/item/stamp/cmo{ - pixel_x = -1; - pixel_y = 12 +/obj/structure/closet/secure_closet/wall{ + dir = 1; + icon_state = "sec_wall"; + name = "armor locker"; + req_access_txt = "5"; + pixel_y = -28 }, -/obj/item/pen{ - pixel_x = -5 +/obj/item/clothing/suit/armor/vest/marine/trauma, +/obj/item/clothing/suit/armor/vest/marine/trauma, +/obj/item/clothing/suit/armor/vest/marine/trauma, +/obj/item/clothing/head/helmet/medical, +/obj/item/clothing/head/helmet/medical, +/obj/item/clothing/head/helmet/medical, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/crew) +"Ap" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 8 }, -/obj/machinery/firealarm/directional/east, -/obj/item/paper_bin{ - pixel_x = 9 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/clothing/neck/stethoscope, -/obj/machinery/recharger, -/turf/open/floor/carpet/nanoweave, -/area/ship/bridge) -"zT" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - piping_layer = 2 +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"AD" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Port Engines" }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"AG" = ( -/obj/structure/railing{ - dir = 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/effect/turf_decal/spline/fancy/opaque/black{ +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage) +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) "AJ" = ( /turf/closed/wall/mineral/titanium, /area/ship/cargo) -"Bl" = ( -/obj/effect/turf_decal/corner/opaque/red/full, +"AQ" = ( +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/airlock/medical{ + name = "Storage Room" + }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"BH" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 1; - id = "traumashield2" +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"AX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 +/obj/effect/turf_decal/industrial/warning/corner, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 8 +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Bp" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 5 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/cryopod{ + dir = 1 }, -/obj/machinery/door/poddoor{ +/obj/machinery/computer/cryopod/directional/south, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/tech, +/area/ship/crew) +"BD" = ( +/obj/item/storage/belt/medical, +/obj/item/healthanalyzer/advanced, +/obj/item/hypospray/mkii/CMO, +/obj/structure/closet/secure_closet/wall{ dir = 4; - id = "traumaramp" + icon_state = "solgov_wall"; + name = "chief medical officer's closet"; + req_access_txt = "40"; + pixel_x = -28 }, -/turf/open/floor/engine, -/area/ship/storage) -"BK" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +/obj/item/storage/backpack/satchel/med, +/obj/item/defibrillator/compact/loaded, +/obj/item/gun/syringe, +/obj/item/reagent_containers/glass/bottle/sodium_thiopental, +/obj/item/clothing/glasses/hud/health/night, +/obj/item/gun/ballistic/automatic/pistol, +/obj/item/clothing/gloves/color/latex/nitrile/evil, +/obj/item/clothing/suit/toggle/labcoat/raincoat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/head/beret/cmo/cybersun, +/obj/item/clothing/under/rank/medical/chief_medical_officer/cybersun, +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"BU" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/tank/internals/oxygen/red, +/turf/open/floor/plasteel/tech, +/area/ship/storage/eva) +"Ca" = ( +/obj/machinery/computer/crew{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Cp" = ( +/obj/machinery/door/airlock/medical{ + name = "Crew Quarters" }, -/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"BN" = ( -/obj/docking_port/mobile{ - launch_status = 0; - port_direction = 2 - }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew) +"Cy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/industrial/warning, /obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/machinery/door/poddoor/shutters{ - id = "traumalobby"; - name = "Lobby" +/turf/open/floor/plating, +/area/ship/maintenance/port) +"CF" = ( +/obj/machinery/door/window/brigdoor/southright{ + dir = 8; + req_access_txt = "5" + }, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/closet/secure_closet/wall{ + dir = 1; + icon_state = "sec_wall"; + name = "clothing locker"; + req_access_txt = "5"; + pixel_y = -28 + }, +/obj/item/clothing/under/syndicate/medic, +/obj/item/clothing/under/syndicate/medic, +/obj/item/clothing/under/syndicate/medic, +/obj/item/clothing/head/soft/cybersun/medical, +/obj/item/clothing/head/soft/cybersun/medical, +/obj/item/clothing/head/soft/cybersun/medical, +/obj/item/clothing/suit/toggle/labcoat/raincoat, +/obj/item/clothing/suit/toggle/labcoat/raincoat, +/obj/item/clothing/suit/toggle/labcoat/raincoat, +/obj/item/storage/backpack/ert/medical, +/obj/item/storage/backpack/ert/medical, +/obj/item/storage/backpack/ert/medical, +/obj/item/clothing/under/syndicate/medic/skirt, +/obj/item/clothing/under/syndicate/medic/skirt, +/obj/item/clothing/under/syndicate/medic/skirt, +/turf/open/floor/plasteel/tech, +/area/ship/crew) +"CL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/turf/open/floor/engine, -/area/ship/cargo) -"Cr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 8 +/turf/open/floor/plasteel/mono/white, +/area/ship/hallway/central) +"CZ" = ( +/obj/machinery/door/poddoor/preopen{ + dir = 8; + id = "traumawindows"; + name = "Window Blast Door" }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -21; - pixel_y = 10 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/crew) +"Dp" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/preopen{ + dir = 8; + id = "traumasurgery"; + name = "Window Blast Door" }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"CX" = ( +/turf/open/floor/plating, +/area/ship/medical) +"Dr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-4" }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-8" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, +/obj/effect/turf_decal/industrial/warning, /turf/open/floor/plating, /area/ship/maintenance/port) -"Dj" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"Dy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/mob/living/simple_animal/hostile/retaliate/poison/snake{ - desc = "The CMO's pet snake. The question of what species it actually belongs to is a mystery for the ages."; - name = "\proper Deuce" +"DS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/bed/dogbed{ - anchored = 1; - desc = "A comfy-looking... snake bed? There's bits of shed scales stuck in the bedding..."; - name = "snake bed" +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -17; + pixel_x = 11 }, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/bridge) -"DH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/industrial/outline/red, -/obj/structure/window/reinforced{ - dir = 1 +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"DX" = ( /obj/structure/closet/crate/medical, /obj/item/roller, /obj/item/roller, /obj/item/roller, /obj/item/roller, /obj/item/roller, -/obj/item/tank/internals/anesthetic, /obj/item/clothing/mask/breath/medical, /obj/machinery/iv_drip, /obj/machinery/iv_drip, /obj/machinery/iv_drip, /obj/machinery/iv_drip, /obj/machinery/iv_drip, -/obj/item/storage/box/bodybags, -/obj/item/storage/box/gloves, -/obj/item/storage/box/masks, -/obj/item/storage/box/bodybags, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"DU" = ( -/obj/structure/sign/poster/official/cleanliness{ - pixel_x = -32 +/obj/effect/turf_decal/industrial/outline/red, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Eb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/machinery/computer/operating, -/obj/structure/window/reinforced{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Ev" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew) +"EL" = ( +/obj/structure/bed{ + dir = 8 + }, +/obj/structure/curtain/bounty, +/obj/item/bedsheet/cmo{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"ES" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/item/radio/intercom/wideband/directional/west, +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"EW" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/medical/surgery) +"Fe" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/tank/internals/oxygen/red, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/tech, +/area/ship/storage/eva) +"Fr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/preopen{ + dir = 8; + id = "traumastore"; + name = "Window Blast Door" }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/medical) -"Ev" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, +/turf/open/floor/plating, +/area/ship/storage) +"FE" = ( +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/patterned/brushed, /area/ship/crew) -"EA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/photocopier, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/medical) -"FA" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +"FH" = ( +/obj/structure/chair{ dir = 4 }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"FO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"FE" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/reagentgrinder{ - pixel_y = 10 - }, -/obj/structure/table, -/obj/item/lighter{ - pixel_x = -8 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Go" = ( +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"Gj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/window{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 +/turf/open/floor/plasteel/mono/white, +/area/ship/hallway/central) +"Gr" = ( +/obj/effect/turf_decal/corner/opaque/red/full, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/ship/medical) +/turf/open/floor/plasteel/white, +/area/ship/cargo) "Gs" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/reagent_dispensers/watertank, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/item/storage/bag/trash, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"GP" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4; - name = "Starboard Engines" +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 5 }, +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#332521" + }, +/turf/open/floor/wood/ebony, +/area/ship/crew) +"Gw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -1424,383 +1787,434 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/door/airlock/medical/glass{ + dir = 8; + id_tag = "lobbydoors"; + name = "Sickbay" + }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"Hk" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/combatmedic, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/effect/turf_decal/industrial/hatch/red, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) -"Hl" = ( -/obj/structure/sign/poster/contraband/random, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew) -"Hq" = ( -/obj/structure/window/reinforced{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/white/mono, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"GH" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Medical" }, -/obj/machinery/door/window/northleft, -/obj/machinery/power/terminal, -/obj/structure/cable, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"Hr" = ( -/obj/structure/bed, -/obj/structure/curtain/bounty, -/obj/item/bedsheet/captain, -/turf/open/floor/plasteel/dark, +/obj/effect/landmark/start/chief_medical_officer, +/turf/open/floor/carpet/cyan, /area/ship/bridge) -"HF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +"GI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"GK" = ( +/obj/structure/chair, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"GZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ship/medical) -"HP" = ( -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/medical) -"HU" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/maintenance/starboard) -"IE" = ( -/obj/machinery/light/small/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/medical/surgery) +"Hb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"IG" = ( -/obj/effect/turf_decal/corner/opaque/red/full, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Ja" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Je" = ( -/obj/machinery/power/terminal, -/obj/structure/cable/yellow, -/obj/item/wrench/crescent, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"Jn" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 1 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Port Engines" }, -/obj/structure/cable, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/port) -"JA" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "traumawindows"; - name = "Window Blast Door" - }, -/turf/open/floor/plating, -/area/ship/medical) -"Kc" = ( -/obj/structure/sign/departments/medbay/alt, +"Hk" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/crate_shelf, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/tech, +/area/ship/storage/eva) +"Hl" = ( +/obj/structure/sign/poster/contraband/random, /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew) -"Kh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/power/terminal, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"Ki" = ( -/obj/effect/landmark/start/paramedic, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/firealarm/directional/west, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -21; - pixel_y = -10 - }, -/turf/open/floor/plasteel, -/area/ship/crew) -"Ko" = ( -/obj/machinery/light/directional/east, +"HE" = ( +/obj/structure/rack, /obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/medical, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/radio/intercom/directional/west, +/obj/item/multitool, /turf/open/floor/plasteel/tech, -/area/ship/storage) -"Kv" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/area/ship/storage/eva) +"HI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"KD" = ( -/obj/structure/window/reinforced{ +/obj/machinery/button/door{ + dir = 4; + id = "lobbydoors"; + name = "Lobby Door Control"; + normaldoorcontrol = 1; + pixel_x = 6; + pixel_y = -4 + }, +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/door/window/northright, -/obj/machinery/power/terminal, -/obj/structure/cable, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"KR" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 +/obj/effect/turf_decal/industrial/hatch/red, +/obj/machinery/button/shieldwallgen{ + dir = 4; + id = "traumashield"; + name = "Lobby Holoshield"; + pixel_x = -6; + pixel_y = 8 }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/item/storage/box/pillbottles, -/obj/item/storage/box/pillbottles, -/obj/item/storage/box/medigels, -/obj/item/storage/box/medigels, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper, -/obj/item/clothing/suit/toggle/labcoat/chemist/side, -/obj/item/clothing/glasses/science, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker/large, -/obj/structure/closet/wall/white/chem{ - dir = 1; - name = "Chemistry Locker"; - pixel_y = -28 +/obj/machinery/button/door{ + dir = 4; + id = "lobbydoors"; + name = "Lobby Door Bolts Control"; + normaldoorcontrol = 1; + pixel_x = 6; + pixel_y = 8; + specialfunctions = 4 }, -/obj/item/storage/backpack/satchel/chem, -/obj/item/clothing/head/beret/chem, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"KW" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/titanium/nodiagonal, +/obj/machinery/button/door{ + dir = 4; + id = "traumalobby"; + name = "Lobby Shutter Control"; + pixel_x = -6; + pixel_y = -4 + }, +/turf/open/floor/plating, /area/ship/cargo) -"Lh" = ( -/obj/machinery/atmospherics/components/binary/pump/on/layer2, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 +"HR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" }, +/obj/machinery/firealarm/directional/north, /turf/open/floor/plating, /area/ship/maintenance/port) -"Ll" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +"HU" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/maintenance/starboard) +"IL" = ( +/obj/structure/chair{ dir = 8 }, +/obj/effect/landmark/start/assistant, /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/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#332521" + }, +/turf/open/floor/wood/ebony, +/area/ship/crew) +"Jh" = ( +/obj/machinery/door/poddoor/preopen{ + id = "traumawindows"; + name = "Window Blast Door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/medical/surgery) +"Jw" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"Ln" = ( /obj/structure/cable{ - icon_state = "6-8" + icon_state = "0-8" }, -/obj/effect/turf_decal/arrows/red{ - dir = 8 +/obj/machinery/door/poddoor{ + dir = 8; + id = "traumaenginel" }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/obj/structure/window/reinforced{ dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage) -"Lt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plating, +/area/ship/maintenance/port) +"JA" = ( +/obj/machinery/power/smes/engineering{ + charge = 1e+006 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) -"Lu" = ( +"JC" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "traumashield2" + }, +/obj/effect/turf_decal/trimline/opaque/red/filled/warning, +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 1 + }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/door/poddoor{ + id = "traumaramp" }, -/obj/effect/turf_decal/siding/white, -/obj/effect/turf_decal/siding/white{ +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/engine, +/area/ship/storage/eva) +"JQ" = ( +/obj/structure/sign/warning/gasmask{ + pixel_y = 32 + }, +/obj/item/stack/marker_beacon/thirty, +/obj/item/stack/marker_beacon/thirty, +/obj/item/stack/marker_beacon/thirty, +/obj/item/stack/marker_beacon/thirty, +/obj/structure/rack, +/obj/item/pickaxe/emergency{ + desc = "For extracting yourself from rough landings, and getting to the even rougher ones"; + name = "Medical Retrieval Tool" }, -/turf/open/floor/vault, +/obj/item/pickaxe/emergency{ + desc = "For extracting yourself from rough landings, and getting to the even rougher ones"; + name = "Medical Retrieval Tool" + }, +/obj/item/pickaxe/emergency{ + desc = "For extracting yourself from rough landings, and getting to the even rougher ones"; + name = "Medical Retrieval Tool" + }, +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"Kc" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew) +"Ki" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/tech, /area/ship/storage) -"Ml" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 8; - height = 15; - width = 30 +"Kk" = ( +/obj/machinery/power/terminal{ + dir = 8 }, -/turf/template_noop, -/area/template_noop) -"Mx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/machinery/firealarm/directional/west{ - pixel_y = 6 +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/industrial/warning{ + dir = 9 + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Kp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/machinery/power/terminal{ + dir = 8 }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/effect/turf_decal/industrial/warning, /obj/machinery/button/door{ - dir = 4; id = "traumaenginer"; name = "Engine Shutter Control"; - pixel_x = -22; - pixel_y = -8 + pixel_x = -5; + pixel_y = -18; + dir = 1 }, /turf/open/floor/plating, /area/ship/maintenance/starboard) -"MK" = ( -/obj/effect/turf_decal/industrial/outline/red, -/obj/structure/railing/corner, -/obj/machinery/vending/medical, -/turf/open/floor/plasteel/tech/grid, -/area/ship/storage) -"MN" = ( -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable/yellow{ - icon_state = "0-2" +"Kv" = ( +/obj/structure/closet/secure_closet{ + icon_state = "med_secure"; + name = "medical intern's locker" }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/light/small/directional/north, -/obj/item/stack/sheet/mineral/plasma/twenty, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"MP" = ( +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/storage/backpack/satchel/med, +/obj/item/storage/backpack/satchel/med, +/obj/item/storage/backpack/satchel/med, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#332521" + }, +/obj/item/clothing/under/syndicate/cybersun, +/obj/item/clothing/under/syndicate/cybersun, +/obj/item/clothing/under/syndicate/cybersun, +/turf/open/floor/wood/ebony, +/area/ship/crew) +"KB" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"KS" = ( /obj/machinery/power/port_gen/pacman, /obj/structure/cable/yellow{ - icon_state = "0-2" + icon_state = "0-8" }, /obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/light/small/directional/north, /obj/item/stack/sheet/mineral/plasma/twenty, /turf/open/floor/plating, /area/ship/maintenance/port) -"MW" = ( -/obj/structure/table, -/obj/item/radio/intercom/directional/south, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/grimy, +"KU" = ( +/obj/structure/bed{ + dir = 8 + }, +/obj/structure/curtain/bounty, +/obj/item/bedsheet/blue{ + dir = 8 + }, +/turf/open/floor/carpet/cyan, /area/ship/crew) -"MY" = ( +"KW" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/cargo) +"KZ" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/effect/turf_decal/industrial/hatch/red, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 32 + }, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/tank/internals/oxygen/red, +/turf/open/floor/plasteel/tech, +/area/ship/storage/eva) +"Le" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/bridge) -"Nn" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"Nq" = ( -/obj/item/clothing/gloves/color/latex/nitrile, -/obj/item/clothing/suit/toggle/labcoat/cmo, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/storage/belt/medical, -/obj/item/clothing/neck/tie/light_blue, -/obj/item/healthanalyzer/advanced, -/obj/item/hypospray/mkii/CMO, -/obj/structure/closet/secure_closet/wall{ - dir = 1; - icon_state = "solgov_wall"; - name = "chief medical officer's closet"; - pixel_y = -28; - req_access_txt = "40" +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"Lh" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 1 }, -/obj/item/storage/backpack/satchel/med, -/obj/item/gun/energy/e_gun/mini, -/obj/item/defibrillator/compact/loaded, -/obj/item/gun/syringe, -/obj/item/reagent_containers/glass/bottle/sodium_thiopental, -/obj/item/clothing/glasses/hud/health/night, -/obj/item/clothing/head/beret/cmo, -/turf/open/floor/carpet/nanoweave, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/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/white, +/area/ship/hallway/central) +"Ln" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"Lr" = ( +/obj/machinery/modular_computer/console/preset/command, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/cyan, /area/ship/bridge) -"Ny" = ( -/obj/machinery/power/smes/shuttle/precharged{ +"Ls" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/window/reinforced, -/obj/machinery/door/window/northleft, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/computer/med_data/laptop{ + dir = 4 }, -/obj/machinery/door/poddoor{ - id = "traumaenginel" +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, +/obj/effect/turf_decal/industrial/hatch/red, /turf/open/floor/plating, -/area/ship/maintenance/port) -"Ob" = ( -/obj/machinery/power/smes/shuttle/precharged{ +/area/ship/cargo) +"LH" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 1 }, -/obj/structure/window/reinforced, -/obj/machinery/door/window/northright, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor{ - id = "traumaenginer" - }, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"OA" = ( -/obj/machinery/firealarm/directional/west, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/industrial/hatch/red, -/obj/structure/closet/crate/freezer/surplus_limbs/organs, -/turf/open/floor/plasteel/tech, -/area/ship/medical) -"OB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -1810,618 +2224,540 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"OK" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/storage) -"Po" = ( -/obj/machinery/holopad/emergency/medical, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/medical) -"Pp" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Pr" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = 32 }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"LJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "0-2" }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"Ps" = ( -/obj/structure/closet/emcloset/wall{ +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light_switch{ dir = 4; - pixel_x = -28 + pixel_x = -20; + pixel_y = -11 }, -/obj/effect/turf_decal/number/two{ - dir = 4 +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"Mb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"PG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-4" }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/siding/white, -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/vault, -/area/ship/storage) -"PH" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/preopen{ - id = "traumawindows"; - name = "Window Blast Door" - }, +/obj/structure/closet/secure_closet/medical2, +/obj/item/reagent_containers/glass/bottle/morphine, +/obj/item/reagent_containers/glass/bottle/morphine, +/obj/machinery/firealarm/directional/south, /turf/open/floor/plating, -/area/ship/crew) -"PL" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/obj/structure/catwalk/over, +/area/ship/maintenance/starboard) +"MW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/curtain/cloth, /turf/open/floor/plating, -/area/ship/external) -"Qe" = ( -/obj/structure/toilet, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 4 +/area/ship/medical) +"Nn" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"Nz" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = 15 }, -/obj/machinery/door/window/survival_pod, /obj/structure/curtain, +/obj/structure/window/reinforced/tinted/frosted, +/obj/machinery/door/window/survival_pod{ + dir = 8 + }, +/obj/item/soap, /turf/open/floor/plasteel/freezer, /area/ship/crew/toilet) -"Qp" = ( -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/trimline/opaque/red/filled/line, -/obj/structure/sign/poster/official/cleanliness{ - pixel_x = -32 +"Of" = ( +/obj/structure/cable{ + icon_state = "2-5" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Qq" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/medical) -"QE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-9" }, +/turf/open/floor/plasteel/stairs/medium{ + dir = 1 + }, +/area/ship/storage/eva) +"OF" = ( +/obj/effect/landmark/start/paramedic, /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" + icon_state = "0-8" }, -/obj/effect/turf_decal/siding/white/end{ - dir = 4 +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 22 }, -/turf/open/floor/vault, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew) +"OK" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/storage) -"QP" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 - }, +"OM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"QQ" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/door/poddoor{ - dir = 8; - id = "traumaramp" +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 1 }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/engine, -/area/ship/storage) -"QU" = ( -/obj/effect/landmark/start/paramedic, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew) -"QY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"OZ" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/eva) +"Pg" = ( +/obj/structure/table/glass, +/obj/item/clothing/mask/surgical{ + pixel_y = 6 }, -/obj/machinery/airalarm/directional/east, -/obj/machinery/power/terminal, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"Rh" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4; - name = "Port Engines" +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/item/clothing/suit/apron/surgical{ + pixel_y = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 5; + pixel_y = -1 }, +/obj/item/reagent_containers/medigel/sterilizine, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/tech, +/area/ship/medical/surgery) +"Pm" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Rs" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 1 }, /turf/open/floor/plasteel/white, -/area/ship/medical) -"RB" = ( -/obj/structure/window/reinforced{ +/area/ship/hallway/central) +"Pp" = ( +/obj/machinery/door/window/brigdoor/southleft{ + dir = 8; + req_access_txt = "5" + }, +/obj/item/storage/belt/medical/surgery, +/obj/item/storage/belt/medical/paramedic, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/closet/crate/freezer/blood, -/obj/item/reagent_containers/blood/lizard, -/obj/item/reagent_containers/blood/lizard, -/obj/item/reagent_containers/blood/squid, -/obj/item/reagent_containers/blood/universal, -/obj/machinery/smartfridge/bloodbank/preloaded{ - density = 0; - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/medical) -"RW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/closet/secure_closet/wall{ + icon_state = "sec_wall"; + name = "equipment locker"; + req_access_txt = "5"; + pixel_y = 28 }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Sc" = ( -/obj/structure/chair, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/item/healthanalyzer/advanced, +/obj/item/healthanalyzer/advanced, +/obj/item/healthanalyzer/advanced, +/obj/item/clothing/glasses/hud/health/sunglasses, +/obj/item/clothing/glasses/hud/health/sunglasses, +/obj/item/clothing/glasses/hud/health/sunglasses, +/obj/item/storage/belt/medical/paramedic, +/obj/item/clothing/gloves/color/latex/nitrile/evil, +/obj/item/clothing/gloves/color/latex/nitrile/evil, +/obj/item/clothing/gloves/color/latex/nitrile/evil, +/turf/open/floor/plasteel/tech, +/area/ship/crew) +"Pz" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + piping_layer = 2; + dir = 8 + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"PF" = ( +/obj/machinery/power/shuttle/engine/electric{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"PH" = ( +/obj/machinery/door/poddoor/preopen{ + id = "traumawindows"; + name = "Window Blast Door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, /area/ship/crew) -"Sx" = ( +"Qq" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/medical) +"Qw" = ( /obj/structure/cable{ - icon_state = "5-8" + icon_state = "1-6" }, /obj/machinery/button/door{ - dir = 1; + dir = 4; id = "traumaramp"; name = "Emergency Ramp"; - pixel_x = -4; - pixel_y = -26 + pixel_x = -26; + pixel_y = -4 }, /obj/machinery/button/shieldwallgen{ - dir = 1; + dir = 4; id = "traumashield2"; name = "Emergency Ramp Shield"; - pixel_x = 6; - pixel_y = -23 + pixel_x = -23; + pixel_y = 6 }, /obj/effect/turf_decal/arrows/red{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 + dir = 1 }, +/obj/effect/turf_decal/spline/fancy/opaque/black, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage) -"Sy" = ( -/obj/machinery/stasis, -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/smartfridge/organ{ - density = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/medical) -"SH" = ( -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/tech, -/area/ship/storage) -"SI" = ( -/obj/structure/bed, -/obj/structure/curtain/bounty, -/obj/item/bedsheet/cmo, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"SP" = ( -/obj/machinery/shower{ - pixel_y = 15 - }, -/obj/structure/curtain, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 4 - }, -/obj/machinery/door/window/survival_pod, -/obj/item/soap, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"SR" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/siding/white{ +/area/ship/storage/eva) +"QF" = ( +/obj/structure/chair/office/light{ dir = 8 }, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/turf/open/floor/vault, -/area/ship/storage) -"Ti" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/maintenance/starboard) -"Tj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/bridge) -"Tq" = ( -/obj/structure/chair/office/light, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 + dir = 6 }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/medical) -"Tt" = ( -/obj/machinery/light/directional/north, -/obj/structure/filingcabinet/medical, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/medical) -"Tx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/turf/open/floor/carpet/cyan, +/area/ship/hallway/central) +"QG" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 }, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "0-8" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/door/poddoor{ + dir = 8; + id = "traumaenginer" + }, +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/structure/closet/secure_closet/medical2, -/obj/item/reagent_containers/glass/bottle/morphine, -/obj/item/reagent_containers/glass/bottle/morphine, /turf/open/floor/plating, /area/ship/maintenance/starboard) -"TI" = ( -/obj/machinery/vending/wardrobe/medi_wardrobe, -/turf/open/floor/carpet/cyan, -/area/ship/crew) -"TO" = ( -/obj/structure/cable{ - icon_state = "0-8" +"Ra" = ( +/obj/machinery/door/poddoor/preopen{ + id = "traumawindows"; + name = "Window Blast Door" }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "traumashield" +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/hallway/central) +"Rb" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/siding/white{ dir = 1 }, -/obj/machinery/door/poddoor/shutters{ - id = "traumalobby"; - name = "Lobby" +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 }, -/turf/open/floor/engine, -/area/ship/cargo) -"TR" = ( -/obj/structure/chair, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/turf_decal/siding/white/corner, +/obj/structure/cable{ + icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew) -"Uc" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/storage) -"Ug" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 + dir = 10 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 6 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"Rl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"UC" = ( -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/fore) -"UG" = ( -/turf/template_noop, -/area/template_noop) -"UJ" = ( -/obj/item/clothing/suit/armor/hos/trenchcoat, -/obj/item/areaeditor/shuttle, -/obj/item/reagent_containers/food/drinks/flask/gold, -/obj/item/reagent_containers/food/drinks/bottle/whiskey, -/obj/item/megaphone/command, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/shoes/sneakers/white, -/obj/structure/closet/secure_closet/wall{ - dir = 1; - icon_state = "solgov_wall"; - name = "captain's closet"; - pixel_y = -28; - req_access_txt = "20" - }, -/obj/item/storage/backpack/messenger/com, -/obj/item/gun/ballistic/revolver/detective{ - name = "\improper Colt Navy Special" - }, -/obj/item/clothing/head/beret/durathread{ - name = "captain beret" +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 }, -/turf/open/floor/carpet/nanoweave, -/area/ship/bridge) -"UO" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/maintenance/starboard) -"UR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew) -"UX" = ( -/obj/item/ammo_box/magazine/co9mm{ - ammo_type = /obj/item/ammo_casing/c9mm/rubber; - name = "Commander magazine (Rubbershot 9mm)" - }, -/obj/item/gun/ballistic/automatic/pistol/commander/no_mag, -/obj/item/gun/ballistic/automatic/pistol/commander/no_mag, -/obj/item/ammo_box/magazine/co9mm{ - ammo_type = /obj/item/ammo_casing/c9mm/rubber; - name = "Commander magazine (Rubbershot 9mm)" - }, -/obj/item/ammo_box/magazine/co9mm{ - ammo_type = /obj/item/ammo_casing/c9mm/rubber; - name = "Commander magazine (Rubbershot 9mm)" - }, -/obj/item/ammo_box/magazine/co9mm{ - ammo_type = /obj/item/ammo_casing/c9mm/ap; - name = "Commander magazine (AP 9mm)" + icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/closet/secure_closet/wall{ - dir = 4; - icon_state = "sec_wall"; - name = "firearms locker"; - pixel_x = -28; - req_access_txt = "5" +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"RA" = ( +/obj/structure/chair{ + dir = 1 }, -/obj/item/gun/ballistic/automatic/pistol/commander/no_mag, -/obj/machinery/light/directional/north, -/obj/item/ammo_box/magazine/co9mm{ - ammo_type = /obj/item/ammo_casing/c9mm/ap; - name = "Commander magazine (AP 9mm)" +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/cargo) +"Sy" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/toxin, +/obj/item/storage/box/medipens, +/obj/item/storage/box/syringes, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/regular, +/obj/structure/closet/secure_closet{ + icon_state = "med"; + name = "medicine locker" }, -/obj/item/ammo_box/magazine/co9mm{ - ammo_type = /obj/item/ammo_casing/c9mm/ap; - name = "Commander magazine (AP 9mm)" +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"SR" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line, +/obj/structure/sign/poster/official/moth/epi{ + pixel_y = -32 }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Vq" = ( +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"Td" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "lobbydoors"; - name = "Sickbay" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white/mono, /turf/open/floor/plasteel/white, /area/ship/cargo) -"Vs" = ( -/obj/item/radio/intercom/wideband/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/bridge) -"Vu" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/glass/bottle/formaldehyde{ - pixel_x = 5 - }, -/obj/item/reagent_containers/glass/bottle/formaldehyde{ - pixel_x = -5 - }, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = -5; - pixel_y = 8 - }, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = 5; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ship/medical) -"VM" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ +"Tg" = ( +/obj/machinery/power/shuttle/engine/electric{ dir = 4 }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor{ - id = "traumaenginer" +/obj/structure/cable{ + icon_state = "0-4" }, /turf/open/floor/plating, +/area/ship/maintenance/port) +"Ti" = ( +/turf/closed/wall/mineral/titanium, /area/ship/maintenance/starboard) -"VY" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +"Tq" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = 32 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/mono/white, +/area/ship/hallway/central) +"Tr" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"Wc" = ( -/obj/machinery/door/airlock/command{ - name = "Bridge" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"TA" = ( +/obj/machinery/computer/cargo/express{ + dir = 8 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"Wd" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 +"TB" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Wm" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/white, -/area/ship/medical) -"Xb" = ( +/area/ship/hallway/central) +"TH" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/tech, +/area/ship/storage/eva) +"TL" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/closet/crate/bin, +/obj/machinery/light/directional/north, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-4" }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -11 + }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"TZ" = ( +/obj/structure/filingcabinet/medical, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/hallway/central) +"Uc" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/storage) +"Ug" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"Uh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 5 }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"Uu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/effect/turf_decal/industrial/warning, /turf/open/floor/plating, /area/ship/maintenance/starboard) -"Xh" = ( -/obj/machinery/door/airlock/medical{ +"Uz" = ( +/obj/effect/turf_decal/siding/white/end{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light_switch{ dir = 4; - name = "Restroom" + pixel_x = -20; + pixel_y = -11 }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"UD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/mono/white, +/area/ship/hallway/central) +"UG" = ( +/turf/template_noop, +/area/template_noop) +"UH" = ( +/obj/machinery/power/smes/engineering{ + charge = 1e+006 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"UK" = ( +/obj/structure/cable{ + icon_state = "1-10" }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"Xj" = ( -/obj/machinery/door/airlock/maintenance_hatch{ +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage/eva) +"UN" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light_switch{ dir = 4; - name = "Starboard Engines" + pixel_x = -20; + pixel_y = -11 }, +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"UO" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/maintenance/starboard) +"UV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -2431,152 +2767,233 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) +"UX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/effect/turf_decal/siding/white{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Xs" = ( -/obj/machinery/light/small/directional/south{ - pixel_x = 17 +/obj/effect/turf_decal/siding/white, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"VJ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "traumawindows"; + name = "Window Blast Door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/science) +"WB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"WJ" = ( +/obj/structure/bed{ + dir = 8 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/bridge) -"XW" = ( -/obj/structure/bed, /obj/structure/curtain/bounty, -/obj/item/bedsheet/blue, -/turf/open/floor/carpet/cyan, -/area/ship/crew) -"XX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/item/bedsheet/syndie{ + dir = 8 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"WP" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/structure/rack, +/obj/item/tank/internals/plasmaman/full, +/obj/item/tank/internals/plasmaman/full, +/obj/item/tank/internals/plasmaman/full, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"WX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/machinery/firealarm/directional/east{ - pixel_y = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/button/door{ - dir = 8; - id = "traumaenginel"; - name = "Engine Shutter Control"; - pixel_x = 22; - pixel_y = -7 +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"Xd" = ( +/obj/item/areaeditor/shuttle, +/obj/item/megaphone/command, +/obj/item/clothing/glasses/sunglasses, +/obj/structure/closet/secure_closet/wall{ + dir = 4; + icon_state = "solgov_wall"; + name = "captain's closet"; + req_access_txt = "20"; + pixel_x = -28 }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"Yb" = ( +/obj/item/gun/ballistic/revolver, +/obj/item/clothing/suit/armor/vest/capcarapace/cybersun, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/head/HoS/cybersun, +/obj/item/clothing/under/syndicate/cybersun/officer, +/obj/item/reagent_containers/food/drinks/flask, +/obj/item/reagent_containers/food/drinks/bottle/gin, +/turf/open/floor/carpet/cyan, +/area/ship/bridge) +"Xi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/siding/white{ +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"Xu" = ( +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/siding/white/corner, -/obj/effect/turf_decal/siding/white/corner{ - dir = 4 +/obj/structure/closet/firecloset/wall{ + dir = 1; + pixel_y = -28 }, -/obj/structure/cable{ - icon_state = "2-4" +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Xx" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 15; + height = 15; + width = 30 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/turf/template_noop, +/area/template_noop) +"XL" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/item/wrench/crescent, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Ym" = ( +/obj/machinery/holopad/emergency/command, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/turf/open/floor/vault, -/area/ship/storage) -"Yk" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/grimy, -/area/ship/crew) +/turf/open/floor/carpet/cyan, +/area/ship/bridge) "Yn" = ( -/obj/effect/spawner/structure/window/shuttle, /obj/structure/curtain/cloth{ color = "#ACD1E9" }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/bridge) -"Yv" = ( +"Yw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/window{ - dir = 4 +/obj/item/storage/toolbox/electrical, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"YA" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/medical/surgery) +"YM" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/medical) +"YQ" = ( +/obj/effect/turf_decal/number/five, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 22 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/ship/medical) -"YI" = ( -/obj/machinery/light/directional/west, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"YK" = ( +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"YV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/white/end, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"Zv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/curtain/cloth, +/turf/open/floor/plating, +/area/ship/storage) +"ZC" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/maintenance/port) +"ZH" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "2-8" + }, /obj/structure/cable{ icon_state = "2-4" }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plasteel/white, -/area/ship/medical) -"YM" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/medical) -"Zb" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "traumawindows"; - name = "Window Blast Door" - }, -/turf/open/floor/plating, -/area/ship/crew) -"ZC" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/maintenance/port) -"ZN" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/medical) -"ZO" = ( -/obj/machinery/vending/cola/random, +/area/ship/hallway/central) +"ZJ" = ( /obj/effect/turf_decal/trimline/opaque/red/filled/line, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel, -/area/ship/cargo) +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/hallway/central) (1,1,1) = {" UG @@ -2588,544 +3005,664 @@ UG UG UG UG -Ml UG +Xx +UG +UG +UG +UG +UG +UG +UG +UG +UG +UG +"} +(2,1,1) = {" +UG +UG +Tg +fp +UG +UG +UG +AJ +KW +yn +sC +rA +KW +AJ +UG +UG +UG +Ti +PF UG UG +"} +(3,1,1) = {" +UG +Tg +Jw +ZC +UG +UG +UG +gL +fX +bv +Ap +bv +na +gL +UG UG UG +UO +zK +PF UG +"} +(4,1,1) = {" +fp +ih +Kk +ZC UG UG fp +gL +GK +eS +oc +eS +RA +gL +Ti +UG +UG +UO +xa +QG +Ti +"} +(5,1,1) = {" +ZC +rJ +AX ZC ZC +ZC +ZC +gL +lS +yX +oc +Gr +lX +gL +UO +UO +UO +UO +yT +Kp +UO +"} +(6,1,1) = {" +ZC +HR +Dr +Hb +Cy +cK +Eb +AD +GI +Td +pQ +rn +GI +wc +Xi +sI +Uu +bu +cd +Mb +UO +"} +(7,1,1) = {" mP +UH +DS +ZC +ZC +ZC +tI +gL +xB +uE +uE +oA +lJ +gL +UO +UO +UO +UO +YQ +JA +HU +"} +(8,1,1) = {" ZC +XL +Yw ZC fp UG +vx +gL +Ls +HI +cL +Gw +zq +gL UG UG +Ti +UO +zT +kh +UO "} -(2,1,1) = {" +(9,1,1) = {" +ZC +KS +Xu +ZC UG UG UG +Ra +pK +QF +UD +CL +tO +Ra UG UG UG -Uc -OK -kO -QQ -BH -Uc +UO +wt +xW +UO +"} +(10,1,1) = {" +fp +ZC +Pz +ZC +UG UG UG +an +TZ +mo +Gj +mu +Tq +an +UG UG UG +UO +tb +UO +Ti +"} +(11,1,1) = {" UG fp ZC -MP -Je -aL -fe -Kh -Ny -Jn +fp +UG +rT +YA +YA +YA +YA +OM +nW +qA +qA +qA +wb UG +Ti +UO +Ti UG "} -(3,1,1) = {" +(12,1,1) = {" UG UG UG UG UG +YA +hS +uT +sO +YA +xp +gW +ke +rk +eT +qA UG -OK -mG -Ln -hv -Sx -OK UG UG UG UG +"} +(13,1,1) = {" +UG +UG +UG +UG +UG +Jh +nb +EW +GZ +fo +ZH +zy +dl +fe +am +VJ +UG +UG +UG UG -ZC -zT -Lh -vT -IE -CX -XX -KD -dR -Jn UG "} -(4,1,1) = {" +(14,1,1) = {" UG UG UG UG UG -Uc -OK -MK -AG -zE -hq -OK -Uc +YA +as +hQ +Pg +YA +zM +gW +ke +wp +mx +qA UG UG UG UG -fp -ZC -ZC -ZC -ZC -mw -ZC -ZC -ZC -fp UG -"} -(5,1,1) = {" +"} +(15,1,1) = {" +UG +UG +UG +UG +Qq +YM +Dp +Dp +Dp +YM +Pm +SR +OK +Fr +Fr +OK +Uc +UG UG UG -nu -Nn -Nn -zo -zo -zo -SR -Yb -hT -OK -YM -JA -Qq UG +"} +(16,1,1) = {" UG UG UG UG -ZC -ZC -vr -ZC +YM +TL +FH +FH +tT +MW +UV +gW +Zv +Sy +DX +qv +OK UG UG UG UG "} -(6,1,1) = {" +(17,1,1) = {" UG -nu -Nn -Hr -Nn -SP -iJ -zo -ed -Lu -bC -OK -fT -ZN -YM -JA -YM -Qq UG UG -PL -cX -sH -ZC -fp UG +qV +zS +up +fW +tF +nI +Lh +zy +AQ +WX +Rl +Ai +OK UG UG -"} -(7,1,1) = {" -Nn -Nn -uk -UJ -Nn -Qe -VY -zo -Hk -PG -aT -OK -Vu -Po -DU -lj -OA -YM -YM -JA -gL -gL -Rh -gL -gL -gL -AJ UG -"} -(8,1,1) = {" -bX -hH -wD -Xs -Nn -qd -oX -zo -Ko -QE -SH -OK -Sy -uo -hQ -HF -cs -YM -Tt -HP -ve -tE -uN -YI -Ja -Qp -KW UG "} -(9,1,1) = {" -bX -dI -Tj -Vs -Nn -zo -Xh -zo -OK -bu -OK -OK -RB -Go -kP -Yv -zt -YM -EA -Tq -oQ -ur -nw -xa -eS -cn -gO +(18,1,1) = {" UG -"} -(10,1,1) = {" -bX -hF -pK -eJ -Wc -Ll -Pr -BK -Ll -sM -Cr +UG +UG +UG +YM +sd +zh vn -qQ -Rs -ru -Wm -qQ -YK -RW -dH -uq -ur -go -Bl -Bl -rh -BN -bl -"} -(11,1,1) = {" -bX -kR -Dy -MY -Yn -cI -Kv -FA -UC -Ug -cI -sz -Wd -Wd -QP -Wd -Wd -lb -nm -sq -Vq -oH -lH -IG -eS -cn -TO +bT +MW +UV +gW +Zv +Ki +tJ +gf +OK +UG +UG +UG UG "} -(12,1,1) = {" -bX -mO -wG -rM -Nn +(19,1,1) = {" +UG +UG +tn +OZ +OZ +OZ +OZ +OZ +OZ +OZ +LH +zl Ev Ev Ev Ev -lY Ev +iA +UG +UG +UG +"} +(20,1,1) = {" +UG +UG +qr +Qw +sx +Uz +Hk +HE +TH +OZ +bQ +ZJ Ev -vG -jx -mQ -lF -uE -YM -zg -Pp -ie -vj -uN -tT -uW -ZO -KW +Kv +iC +jh +Gs +Ev +iA +UG UG "} -(13,1,1) = {" -Nn -Nn -zR -Nq -Nn -UX -kC -Ki -QU -UR -tO +(21,1,1) = {" +UG +pf +jK +zD +Of +Rb +jU +Ln +YV +uU +iQ +zy +Cp +uc +IL +kw +xN +Bp Ev -wQ -tW -DH -oS -ck -YM -YM -JA -gL -gL -Xj -gL -gL -gL -AJ +UG UG "} -(14,1,1) = {" +(22,1,1) = {" UG -nu -Nn -SI -Nn -se -eM -su -qc -TR -MW +UG +JC +UK +la +UX +BU +KZ +Fe +OZ +TB +us Ev -FE -KR -YM -JA -YM -Qq +OF +yf +iW +nF +iW +PH UG UG +"} +(23,1,1) = {" UG -UO -Lt -UO -Ti UG +OZ +JQ +WP +zo +zo +zo +zo +zo +Le +KB +Ev +iz +FE +hW +KU +in +Kc UG UG "} -(15,1,1) = {" +(24,1,1) = {" UG UG -nu -Nn -Nn -Ev +tn +OZ +OZ +zo +wr +WB +LJ +eo +li +Ug Ev -TI -iW -Sc -fa +Pp +CF Ev -YM -YM -Qq +Hl +CZ +iA UG UG +"} +(25,1,1) = {" UG UG UG -Ti -UO -OB -UO +UG +tn +zo +Nz +rS +ba +zo +Tr +gW +Ev +vj +Aj +Ev +iA UG UG UG UG "} -(16,1,1) = {" +(26,1,1) = {" UG UG UG UG UG -iA -Hl -XW -np -tq -Yk -Ev -Qq +Nn +Nn +Nn +Nn +Nn +bD +Yn +Nn +Nn +Nn +Nn UG UG UG UG -Ti -UO -UO -UO -UO -GP -UO -UO -UO -Ti UG "} -(17,1,1) = {" +(27,1,1) = {" UG UG UG UG UG -UG -PH -XW -iW -el -Ev -iA -UG +Nn +WJ +Xd +Ah +ES +Ym +Uh +UN +BD +EL +Nn UG UG UG UG -UO -Gs -Ps -yi -nl -Xb -Mx -Hq -VM -Dj UG "} -(18,1,1) = {" +(28,1,1) = {" UG UG UG UG UG +nu +Nn +Lr +vE +FO +zL +qW +GH +zn +Nn +nu UG -iA -Kc -Zb -Ev -iA UG UG UG UG +"} +(29,1,1) = {" UG UG -Ti -UO -MN -kH -iP -Tx -QY -Ob -Dj UG UG -"} -(19,1,1) = {" UG UG +nu +Nn +xF +TA +hF +Ca +yQ +Nn +nu +UG UG UG UG UG UG +"} +(30,1,1) = {" UG UG UG @@ -3133,17 +3670,17 @@ UG UG UG UG +Nn +ot +ot +ot +ot +ot +Nn UG UG UG UG -Ti -UO -UO -HU -UO -UO -Ti UG UG UG diff --git a/_maps/shuttles/syndicate/syndicate_luxembourg.dmm b/_maps/shuttles/syndicate/syndicate_luxembourg.dmm index 1f8f1132f0d7..6dde77123cba 100644 --- a/_maps/shuttles/syndicate/syndicate_luxembourg.dmm +++ b/_maps/shuttles/syndicate/syndicate_luxembourg.dmm @@ -2517,8 +2517,8 @@ /obj/machinery/suit_storage_unit/inherit{ req_access_txt = "41" }, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, -/obj/item/clothing/head/helmet/space/hardsuit/syndi/scarlet, +/obj/item/clothing/suit/space/syndicate, +/obj/item/clothing/head/helmet/space/syndicate, /obj/item/clothing/mask/breath, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 6390f43501cd..2c471b9ccb85 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -514,7 +514,7 @@ req_access = list(151) }, /obj/item/areaeditor/shuttle, -/obj/item/clothing/under/syndicate/aclf, +/obj/item/clothing/under/syndicate/officer, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/clothing/head/HoS/syndicate, /obj/item/codespeak_manual/unlimited, @@ -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 @@ -5351,9 +5349,9 @@ /obj/effect/turf_decal/spline/fancy/opaque/syndiered{ dir = 5 }, -/obj/item/clothing/head/aclfcap, -/obj/item/clothing/suit/aclf, -/obj/item/clothing/under/syndicate/aclf, +/obj/item/clothing/head/gorlexcap, +/obj/item/clothing/suit/gorlex, +/obj/item/clothing/under/syndicate/officer, /obj/structure/closet/secure_closet{ anchored = 1; icon_state = "syndicate"; @@ -5845,9 +5843,6 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, /obj/machinery/door/airlock/hatch{ name = "Security" }, @@ -6469,9 +6464,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 +8068,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/_maps/templates/holodeck_thunderdome1218.dmm b/_maps/templates/holodeck_thunderdome1218.dmm index 353f77e4710d..94556b2bdc7d 100644 --- a/_maps/templates/holodeck_thunderdome1218.dmm +++ b/_maps/templates/holodeck_thunderdome1218.dmm @@ -101,7 +101,6 @@ /area/template_noop) "T" = ( /obj/structure/table/wood, -/obj/item/tailclub, /obj/item/spear, /turf/open/floor/holofloor/asteroid, /area/template_noop) 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 c051d974de12..a2bb022d2b90 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: [49, "/obj text paths", '"/obj'] + - exactly: [44, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - exactly: [117, "text2path uses", "text2path"] @@ -52,6 +52,9 @@ standards: '\(([\t ]+([^)"\n\\]*)|([^("\n]+)[\t ]+)\)', ] + - exactly: [2, "Old-style proc references", '\.proc/(\w+)'] + - exactly: [0, "Old-style typed proc references", '([\w/]+?)/?\.proc/(\w+)'] + - no_more: [ 34, diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 8cdb11fd00b1..36fc398d942c 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -154,7 +154,6 @@ #define ORGAN_SLOT_LIVER "liver" #define ORGAN_SLOT_TONGUE "tongue" #define ORGAN_SLOT_VOICE "vocal_cords" -#define ORGAN_SLOT_ADAMANTINE_RESONATOR "adamantine_resonator" #define ORGAN_SLOT_HEART_AID "heartdrive" #define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop" #define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun" 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 ca7a54d6cfc1..25f3717011a9 100644 --- a/code/__DEFINES/callbacks.dm +++ b/code/__DEFINES/callbacks.dm @@ -4,4 +4,4 @@ #define INVOKE_ASYNC world.ImmediateInvokeAsync /// like CALLBACK but specifically for verb callbacks #define VERB_CALLBACK new /datum/callback/verb_callback -#define CALLBACK_NEW(typepath, args) CALLBACK(GLOBAL_PROC, /proc/___callbacknew, typepath, args) +#define CALLBACK_NEW(typepath, args) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbacknew), typepath, args) diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 5814f8f27a1f..c428e1e7dd53 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -164,6 +164,8 @@ #define LIGHT_COLOR_LAVA "#C48A18" /// Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75) #define LIGHT_COLOR_FLARE "#FA644B" +/// Vivid red. Leans a bit darker to accentuate red colors and leave other channels a bit dry. rgb(200, 25, 25) +#define LIGHT_COLOR_INTENSE_RED "#C81919" /// Weird color, between yellow and green, very slimy. rgb(175, 200, 75) #define LIGHT_COLOR_SLIME_LAMP "#AFC84B" /// Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175) 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 bbdbe022a9df..004b2f23fedf 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -752,3 +752,7 @@ /// generally called before temporary non-parallel animate()s on the atom (animation_duration) #define COMSIG_ATOM_TEMPORARY_ANIMATION_START "atom_temp_animate_start" + +/// send when enabling/diabling an autofire component +#define COMSIG_GUN_DISABLE_AUTOFIRE "disable_autofire" +#define COMSIG_GUN_ENABLE_AUTOFIRE "enable_autofire" 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/fonts.dm b/code/__DEFINES/fonts.dm index 446a40998898..32a08f38861b 100644 --- a/code/__DEFINES/fonts.dm +++ b/code/__DEFINES/fonts.dm @@ -2,7 +2,7 @@ /// Font used by regular pens #define PEN_FONT "Verdana" /// Font used by fancy pens -#define FOUNTAIN_PEN_FONT "Segoe Script" +#define FOUNTAIN_PEN_FONT "Adobe Garamond" /// Font used by crayons #define CRAYON_FONT "Comic Sans MS" /// Font used by printers diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index b824bd2a17b1..8fd5d549c086 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -61,7 +61,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isandroid(A) (is_species(A, /datum/species/android)) #define issynth(A) (is_species(A, /datum/species/synth)) #define ismilsynth(A) (is_species(A, /datum/species/synth/military)) -#define isgolem(A) (is_species(A, /datum/species/golem)) #define islizard(A) (is_species(A, /datum/species/lizard)) #define isplasmaman(A) (is_species(A, /datum/species/plasmaman)) #define ispodperson(A) (is_species(A, /datum/species/pod)) 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/misc.dm b/code/__DEFINES/misc.dm index e8975a1a6653..9dbe4fae64e9 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -474,3 +474,7 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define CUSTOM_HOLODECK_ONE (1<<1) #define CUSTOM_HOLODECK_TWO (1<<2) #define HOLODECK_DEBUG (1<<3)//you should never see this + +#define ROUND_END_NOT_DELAYED 0 +#define ROUND_END_DELAYED 1 +#define ROUND_END_TGS 2 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 99cff793a761..ad9d5ae5abc8 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -87,10 +87,8 @@ #define SPECIES_LIZARD "lizard" #define SPECIES_ASHWALKER "ashwalker" #define SPECIES_KOBOLD "kobold" -#define SPECIES_GOLEM "golem" #define SPECIES_MONKEY "monkey" #define SPECIES_MOTH "moth" -#define SPECIES_MUSH "mush" #define SPECIES_PLASMAMAN "plasmaman" #define SPECIES_POD "pod" #define SPECIES_SHADOW "shadow" @@ -226,7 +224,6 @@ #define SANITY_INSANE 0 //Nutrition levels for humans -#define NUTRITION_LEVEL_FAT 600 #define NUTRITION_LEVEL_FULL 550 #define NUTRITION_LEVEL_WELL_FED 450 #define NUTRITION_LEVEL_FED 350 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/statpanel.dm b/code/__DEFINES/statpanel.dm index 8ce6ba624a1b..c5378235fc63 100644 --- a/code/__DEFINES/statpanel.dm +++ b/code/__DEFINES/statpanel.dm @@ -8,7 +8,7 @@ GLOBAL_LIST_INIT(client_verbs_required, list( /client/verb/panel_ready, // Skin buttons that should always work /client/verb/rules, - /client/verb/forum, + /client/verb/lore, /client/verb/github, /client/verb/joindiscord, )) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index d1fbf26616d5..97e1ac7c574d 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -1,138 +1,93 @@ - -//These are all the different status effects. Use the paths for each effect in the defines. - -#define STATUS_EFFECT_MULTIPLE 0 //if it allows multiple instances of the effect - -#define STATUS_EFFECT_UNIQUE 1 //if it allows only one, preventing new instances - -#define STATUS_EFFECT_REPLACE 2 //if it allows only one, but new instances replace - -#define STATUS_EFFECT_REFRESH 3 // if it only allows one, and new instances just instead refresh the timer - -/////////// -// BUFFS // -/////////// - -#define STATUS_EFFECT_SHADOW_MEND /datum/status_effect/shadow_mend //Quick, powerful heal that deals damage afterwards. Heals 15 brute/burn every second for 3 seconds. -#define STATUS_EFFECT_VOID_PRICE /datum/status_effect/void_price //The price of healing yourself with void energy. Deals 3 brute damage every 3 seconds for 30 seconds. - -#define STATUS_EFFECT_POWERREGEN /datum/status_effect/cyborg_power_regen //Regenerates power on a given cyborg over time - -#define STATUS_EFFECT_WISH_GRANTERS_GIFT /datum/status_effect/wish_granters_gift //If you're currently resurrecting with the Wish Granter - -#define STATUS_EFFECT_BLOODDRUNK /datum/status_effect/blooddrunk //Stun immunity and greatly reduced damage taken - -#define STATUS_EFFECT_FLESHMEND /datum/status_effect/fleshmend //Very fast healing; suppressed by fire, and heals less fire damage - -#define STATUS_EFFECT_EXERCISED /datum/status_effect/exercised //Prevents heart disease - -#define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost - -#define STATUS_EFFECT_GOOD_MUSIC /datum/status_effect/good_music - -#define STATUS_EFFECT_REGENERATIVE_CORE /datum/status_effect/regenerative_core - -#define STATUS_EFFECT_ANTIMAGIC /datum/status_effect/antimagic //grants antimagic (and reapplies if lost) for the duration - -///////////// -// DEBUFFS // -///////////// - -#define STATUS_EFFECT_STUN /datum/status_effect/incapacitating/stun //the affected is unable to move or use items - -#define STATUS_EFFECT_KNOCKDOWN /datum/status_effect/incapacitating/knockdown //the affected is unable to stand up - -#define STATUS_EFFECT_IMMOBILIZED /datum/status_effect/incapacitating/immobilized //the affected is unable to move - -#define STATUS_EFFECT_PARALYZED /datum/status_effect/incapacitating/paralyzed //the affected is unable to move, use items, or stand up. - -#define STATUS_EFFECT_UNCONSCIOUS /datum/status_effect/incapacitating/unconscious //the affected is unconscious - -#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep - -#define STATUS_EFFECT_PACIFY /datum/status_effect/pacify //the affected is pacified, preventing direct hostile actions - -#define STATUS_EFFECT_BELLIGERENT /datum/status_effect/belligerent //forces the affected to walk, doing damage if they try to run - -#define STATUS_EFFECT_GEISTRACKER /datum/status_effect/geis_tracker //if you're using geis, this tracks that and keeps you from using scripture - -#define STATUS_EFFECT_MANIAMOTOR /datum/status_effect/maniamotor //disrupts, damages, and confuses the affected as long as they're in range of the motor -#define MAX_MANIA_SEVERITY 100 //how high the mania severity can go -#define MANIA_DAMAGE_TO_CONVERT 90 //how much damage is required before it'll convert affected targets - -#define STATUS_EFFECT_CHOKINGSTRAND /datum/status_effect/strandling //Choking Strand - -#define STATUS_EFFECT_HISWRATH /datum/status_effect/his_wrath //His Wrath. - -#define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes - -#define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage - -#define STATUS_EFFECT_SAWBLEED /datum/status_effect/stacking/saw_bleed //if the bleed builds up enough, takes a ton of damage - -#define STATUS_EFFECT_NECKSLICE /datum/status_effect/neck_slice //Creates the flavor messages for the neck-slice - -#define STATUS_EFFECT_CONVULSING /datum/status_effect/convulsing - -#define STATUS_EFFECT_NECROPOLIS_CURSE /datum/status_effect/necropolis_curse -#define STATUS_EFFECT_HIVEMIND_CURSE /datum/status_effect/necropolis_curse/hivemind -#define CURSE_BLINDING 1 //makes the edges of the target's screen obscured -#define CURSE_SPAWNING 2 //spawns creatures that attack the target only -#define CURSE_WASTING 4 //causes gradual damage -#define CURSE_GRASPING 8 //hands reach out from the sides of the screen, doing damage and stunning if they hit the target - -#define STATUS_EFFECT_KINDLE /datum/status_effect/kindle //A knockdown reduced by 1 second for every 3 points of damage the target takes. - -#define STATUS_EFFECT_ICHORIAL_STAIN /datum/status_effect/ichorial_stain //Prevents a servant from being revived by vitality matrices for one minute. - -#define STATUS_EFFECT_GONBOLAPACIFY /datum/status_effect/gonbolaPacify //Gives the user gondola traits while the gonbola is attached to them. - -#define STATUS_EFFECT_SPASMS /datum/status_effect/spasms //causes random muscle spasms - -#define STATUS_EFFECT_DNA_MELT /datum/status_effect/dna_melt //usually does something horrible to you when you hit 100 genetic instability - -#define STATUS_EFFECT_GO_AWAY /datum/status_effect/go_away //makes you launch through walls in a single direction for a while - -#define STATUS_EFFECT_STASIS /datum/status_effect/grouped/stasis //Halts biological functions like bleeding, chemical processing, blood regeneration, walking, etc - -#define STATUS_EFFECT_FAKE_VIRUS /datum/status_effect/fake_virus //gives you fluff messages for cough, sneeze, headache, etc but without an actual virus - -#define STATUS_EFFECT_METAB_FROZEN /datum/status_effect/metab_frozen // Affected cannot process chems - -///////////// -// NEUTRAL // -///////////// - -#define STATUS_EFFECT_SIGILMARK /datum/status_effect/sigil_mark - -#define STATUS_EFFECT_CRUSHERDAMAGETRACKING /datum/status_effect/crusher_damage //tracks total kinetic crusher damage on a target - -#define STATUS_EFFECT_SYPHONMARK /datum/status_effect/syphon_mark //tracks kills for the KA death syphon module - -#define STATUS_EFFECT_INLOVE /datum/status_effect/in_love //Displays you as being in love with someone else, and makes hearts appear around them. - -#define STATUS_EFFECT_BUGGED /datum/status_effect/bugged //Lets other mobs listen in on what it hears - -#define STATUS_EFFECT_BOUNTY /datum/status_effect/bounty //rewards the person who added this to the target with refreshed spells and a fair heal - -#define STATUS_EFFECT_HELDUP /datum/status_effect/heldup // someone is currently pointing a gun at you - -#define STATUS_EFFECT_HOLDUP /datum/status_effect/holdup // you are currently pointing a gun at someone - -#define STATUS_EFFECT_OFFERING /datum/status_effect/offering // you are offering up an item to people - -#define STATUS_EFFECT_SURRENDER /datum/status_effect/surrender // gives an alert to quickly surrender -///////////// -// SLIME // -///////////// - -#define STATUS_EFFECT_RAINBOWPROTECTION /datum/status_effect/rainbow_protection //Invulnerable and pacifistic -#define STATUS_EFFECT_SLIMESKIN /datum/status_effect/slimeskin //Increased armor +///if it allows multiple instances of the effect +#define STATUS_EFFECT_MULTIPLE 0 +///if it allows only one, preventing new instances +#define STATUS_EFFECT_UNIQUE 1 +///if it allows only one, but new instances replace +#define STATUS_EFFECT_REPLACE 2 +/// if it only allows one, and new instances just instead refresh the timer +#define STATUS_EFFECT_REFRESH 3 + +///Processing flags - used to define the speed at which the status will work +///This is fast - 0.2s between ticks (I believe!) +#define STATUS_EFFECT_FAST_PROCESS 0 +///This is slower and better for more intensive status effects - 1s between ticks +#define STATUS_EFFECT_NORMAL_PROCESS 1 + +//several flags for the Necropolis curse status effect +///makes the edges of the target's screen obscured +#define CURSE_BLINDING (1<<0) +///spawns creatures that attack the target only +#define CURSE_SPAWNING (1<<1) +///causes gradual damage +#define CURSE_WASTING (1<<2) +///hands reach out from the sides of the screen, doing damage and stunning if they hit the target +#define CURSE_GRASPING (1<<3) // Grouped effect sources, see also code/__DEFINES/traits.dm #define STASIS_MACHINE_EFFECT "stasis_machine" -// Stasis helpers - -#define IS_IN_STASIS(mob) (mob.has_status_effect(STATUS_EFFECT_STASIS)) +// Status effect application helpers. +// These are macros for easier use of adjust_timed_status_effect and set_timed_status_effect. +// +// adjust_x: +// - Adds duration to a status effect +// - Removes duration if a negative duration is passed. +// - Ex: adjust_stutter(10 SECONDS) adds ten seconds of stuttering. +// - Ex: adjust_jitter(-5 SECONDS) removes five seconds of jittering, or just removes jittering if less than five seconds exist. +// +// adjust_x_up_to: +// - Will only add (or remove) duration of a status effect up to the second parameter +// - If the duration will result in going beyond the second parameter, it will stop exactly at that parameter +// - The second parameter cannot be negative. +// - Ex: adjust_stutter_up_to(20 SECONDS, 10 SECONDS) adds ten seconds of stuttering. +// +// set_x: +// - Set the duration of a status effect to the exact number. +// - Setting duration to zero seconds is effectively the same as just using remove_status_effect, or qdelling the effect. +// - Ex: set_stutter(10 SECONDS) sets the stuttering to ten seconds, regardless of whether they had more or less existing stutter. +// +// set_x_if_lower: +// - Will only set the duration of that effect IF any existing duration is lower than what was passed. +// - Ex: set_stutter_if_lower(10 SECONDS) will set stuttering to ten seconds if no stuttering or less than ten seconds of stuttering exists +// - Ex: set_jitter_if_lower(20 SECONDS) will do nothing if more than twenty seconds of jittering already exists + +#define adjust_stutter(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter) +#define adjust_stutter_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter, up_to) +#define set_stutter(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter) +#define set_stutter_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter, TRUE) + +#define adjust_derpspeech(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech) +#define adjust_derpspeech_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech, up_to) +#define set_derpspeech(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech) +#define set_derpspeech_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech, TRUE) + +#define adjust_slurring(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk) +#define adjust_slurring_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk, up_to) +#define set_slurring(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk) +#define set_slurring_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk, TRUE) + +#define adjust_dizzy(duration) adjust_timed_status_effect(duration, /datum/status_effect/dizziness) +#define adjust_dizzy_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/dizziness, up_to) +#define set_dizzy(duration) set_timed_status_effect(duration, /datum/status_effect/dizziness) +#define set_dizzy_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/dizziness, TRUE) + +#define adjust_jitter(duration) adjust_timed_status_effect(duration, /datum/status_effect/jitter) +#define adjust_jitter_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/jitter, up_to) +#define set_jitter(duration) set_timed_status_effect(duration, /datum/status_effect/jitter) +#define set_jitter_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/jitter, TRUE) + +#define adjust_confusion(duration) adjust_timed_status_effect(duration, /datum/status_effect/confusion) +#define adjust_confusion_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/confusion, up_to) +#define set_confusion(duration) set_timed_status_effect(duration, /datum/status_effect/confusion) +#define set_confusion_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/confusion, TRUE) +/* Drugginess is not a status effect (yet) +#define adjust_drugginess(duration) adjust_timed_status_effect(duration, /datum/status_effect/drugginess) +#define adjust_drugginess_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/drugginess, up_to) +#define set_drugginess(duration) set_timed_status_effect(duration, /datum/status_effect/drugginess) +#define set_drugginess_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/drugginess, TRUE) +*/ +#define adjust_hallucinations(duration) adjust_timed_status_effect(duration, /datum/status_effect/hallucination) +#define adjust_hallucinations_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/hallucination, up_to) +#define set_hallucinations(duration) set_timed_status_effect(duration, /datum/status_effect/hallucination) +#define set_hallucinations_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/hallucination, TRUE) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index d468d6044196..c561a64ebf58 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.6.1" +#define TGS_DMAPI_VERSION "7.0.1" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -73,12 +73,12 @@ #define TGS_EVENT_REPO_MERGE_PULL_REQUEST 3 /// Before the repository makes a sychronize operation. Parameters: Absolute repostiory path. #define TGS_EVENT_REPO_PRE_SYNCHRONIZE 4 -/// Before a BYOND install operation begins. Parameters: [/datum/tgs_version] of the installing BYOND. -#define TGS_EVENT_BYOND_INSTALL_START 5 -/// When a BYOND install operation fails. Parameters: Error message -#define TGS_EVENT_BYOND_INSTALL_FAIL 6 -/// When the active BYOND version changes. Parameters: (Nullable) [/datum/tgs_version] of the current BYOND, [/datum/tgs_version] of the new BYOND. -#define TGS_EVENT_BYOND_ACTIVE_VERSION_CHANGE 7 +/// Before a engine install operation begins. Parameters: Version string of the installing engine. +#define TGS_EVENT_ENGINE_INSTALL_START 5 +/// When a engine install operation fails. Parameters: Error message +#define TGS_EVENT_ENGINE_INSTALL_FAIL 6 +/// When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine. +#define TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE 7 /// When the compiler starts running. Parameters: Game directory path, origin commit SHA. #define TGS_EVENT_COMPILE_START 8 /// When a compile is cancelled. No parameters. @@ -108,7 +108,7 @@ // #define TGS_EVENT_DREAM_DAEMON_LAUNCH 22 /// After a single submodule update is performed. Parameters: Updated submodule name. #define TGS_EVENT_REPO_SUBMODULE_UPDATE 23 -/// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, byond version. +/// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine. #define TGS_EVENT_PRE_DREAM_MAKER 24 /// Whenever a deployment folder is deleted from disk. Parameters: Game directory path. #define TGS_EVENT_DEPLOYMENT_CLEANUP 25 @@ -122,6 +122,7 @@ /// The watchdog will restart on reboot. #define TGS_REBOOT_MODE_RESTART 2 +// Note that security levels are currently meaningless in OpenDream /// DreamDaemon Trusted security level. #define TGS_SECURITY_TRUSTED 0 /// DreamDaemon Safe security level. @@ -136,6 +137,11 @@ /// DreamDaemon invisible visibility level. #define TGS_VISIBILITY_INVISIBLE 2 +/// The Build Your Own Net Dream engine. +#define TGS_ENGINE_TYPE_BYOND 0 +/// The OpenDream engine. +#define TGS_ENGINE_TYPE_OPENDREAM 1 + //REQUIRED HOOKS /** @@ -449,6 +455,10 @@ /world/proc/TgsVersion() return +/// Returns the running engine type +/world/proc/TgsEngine() + return + /// Returns the current [/datum/tgs_version] of the DMAPI being used if it was activated, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! /world/proc/TgsApiVersion() return diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm index fda27f56d1a3..494859934cdb 100644 --- a/code/__DEFINES/time.dm +++ b/code/__DEFINES/time.dm @@ -2,8 +2,9 @@ #define MIDNIGHT_ROLLOVER 864000 ///displays the current time into the round, with a lot of extra code just there for ensuring it looks okay after an entire day passes -#define ROUND_TIME ( "[world.time - SSticker.round_start_time > MIDNIGHT_ROLLOVER ? "[round((world.time - SSticker.round_start_time)/MIDNIGHT_ROLLOVER)]:[worldtime2text()]" : worldtime2text()]" ) - +#define ROUND_TIME ( "[world.time - SSticker.round_start_time > MIDNIGHT_ROLLOVER ? "[round((world.time - SSticker.round_start_time)/MIDNIGHT_ROLLOVER)]:[game_timestamp()]" : game_timestamp()]" ) +///same as above, but based on real time of day +#define ROUND_REALTIMEOFDAY ( "[REALTIMEOFDAY - SSticker.round_start_timeofday > MIDNIGHT_ROLLOVER ? "[round((REALTIMEOFDAY - SSticker.round_start_timeofday)/MIDNIGHT_ROLLOVER)]:[time2text(world.timeofday - SSticker.round_start_timeofday, "hh:mm:ss", 0)]" : time2text(world.timeofday - SSticker.round_start_timeofday, "hh:mm:ss", 0)]" ) #define JANUARY 1 #define FEBRUARY 2 diff --git a/code/__DEFINES/tools.dm b/code/__DEFINES/tools.dm index 11ce83ecfb0b..320648170b44 100644 --- a/code/__DEFINES/tools.dm +++ b/code/__DEFINES/tools.dm @@ -18,3 +18,8 @@ // If delay between the start and the end of tool operation is less than MIN_TOOL_SOUND_DELAY, // tool sound is only played when op is started. If not, it's played twice. #define MIN_TOOL_SOUND_DELAY 20 + +/// When a tooltype_act proc is successful +#define TOOL_ACT_TOOLTYPE_SUCCESS (1<<0) +/// When [COMSIG_ATOM_TOOL_ACT] blocks the act +#define TOOL_ACT_SIGNAL_BLOCKING (1<<1) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index ea51a1c96113..69de29d4cd70 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -146,7 +146,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_MUTE "mute" #define TRAIT_EMOTEMUTE "emotemute" #define TRAIT_NEARSIGHT "nearsighted" -#define TRAIT_FAT "fat" #define TRAIT_HUSK "husk" #define TRAIT_BADDNA "baddna" #define TRAIT_CLUMSY "clumsy" @@ -290,6 +289,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_SPIRITUAL "spiritual" #define TRAIT_FAN_CLOWN "fan_clown" #define TRAIT_FAN_MIME "fan_mime" +#define TRAIT_FAN_RILENA "fan_rilena" #define TRAIT_VORACIOUS "voracious" #define TRAIT_SELF_AWARE "self_aware" #define TRAIT_FREERUNNING "freerunning" @@ -322,7 +322,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define UNCONSCIOUS_TRAIT "unconscious" #define EYE_DAMAGE "eye_damage" #define GENETIC_MUTATION "genetic" -#define OBESITY "obesity" #define MAGIC_TRAIT "magic" #define TRAUMA_TRAIT "trauma" #define DISEASE_TRAIT "disease" @@ -425,6 +424,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_FISH_SAFE_STORAGE "fish_case" /// Stuff that can go inside fish cases #define TRAIT_FISH_CASE_COMPATIBILE "fish_case_compatibile" +/// Granted by prismwine +#define TRAIT_REFLECTIVE "reflective" /// Trait granted by [mob/living/silicon/ai] /// Applied when the ai anchors itself 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/_logging.dm b/code/__HELPERS/_logging.dm index df8a952c05b5..1ab889987695 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -71,7 +71,7 @@ /proc/log_mentor(text) GLOB.mentorlog.Add(text) if (CONFIG_GET(flag/log_admin)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]MENTOR: [text]") + WRITE_FILE(GLOB.world_game_log, "MENTOR: [text]") /* All other items are public. */ /proc/log_game(text) diff --git a/code/__HELPERS/chat.dm b/code/__HELPERS/chat.dm index 2a546370ec0e..c265623b1643 100644 --- a/code/__HELPERS/chat.dm +++ b/code/__HELPERS/chat.dm @@ -47,18 +47,17 @@ In TGS3 it will always be sent to all connected designated game chats. var/datum/tgs_version/version = world.TgsVersion() if(channel_tag == "" || version.suite == 3) - world.TgsTargetedChatBroadcast(message, FALSE) + world.TgsTargetedChatBroadcast(new /datum/tgs_message_content(message), FALSE) return var/list/channels_to_use = list() - for(var/I in world.TgsChatChannelInfo()) - var/datum/tgs_chat_channel/channel = I + for(var/datum/tgs_chat_channel/channel as anything in world.TgsChatChannelInfo()) var/list/applicable_tags = splittext(channel.custom_tag, ",") if(channel_tag in applicable_tags) channels_to_use += channel - if(channels_to_use.len) - world.TgsChatBroadcast(message, channels_to_use) + if(length(channels_to_use)) + world.TgsChatBroadcast(new /datum/tgs_message_content(message), channels_to_use) /** * Sends a message to TGS admin chat channels. @@ -69,4 +68,4 @@ In TGS3 it will always be sent to all connected designated game chats. /proc/send2adminchat(category, message) category = replacetext(replacetext(category, "\proper", ""), "\improper", "") message = replacetext(replacetext(message, "\proper", ""), "\improper", "") - world.TgsTargetedChatBroadcast("[category] | [message]", TRUE) + world.TgsTargetedChatBroadcast(new /datum/tgs_message_content("[category] | [message]"), TRUE) 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/mobs.dm b/code/__HELPERS/mobs.dm index e824b3d82273..14a2399f1f2e 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)) @@ -685,6 +687,8 @@ GLOBAL_LIST_EMPTY(species_list) . = pick(ais) return . +#define IS_IN_STASIS(mob) (mob.has_status_effect(/datum/status_effect/grouped/stasis)) + /// Gets the client of the mob, allowing for mocking of the client. /// You only need to use this if you know you're going to be mocking clients somewhere else. #define GET_CLIENT(mob) (##mob.client || ##mob.mock_client) 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/roundend.dm b/code/__HELPERS/roundend.dm index 213bce08f003..5d96dc8af34c 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -302,7 +302,7 @@ var/statspage = CONFIG_GET(string/roundstatsurl) var/info = statspage ? "[GLOB.round_id]" : GLOB.round_id parts += "[FOURSPACES]Round ID: [info]" - parts += "[FOURSPACES]Shift Duration: [DisplayTimeText(world.timeofday - SSticker.round_start_timeofday)]" + parts += "[FOURSPACES]Shift Duration: [DisplayTimeText(REALTIMEOFDAY - SSticker.round_start_timeofday)]" parts += "[FOURSPACES]Station Integrity: [mode.station_was_nuked ? "Destroyed" : "[popcount["station_integrity"]]%"]" var/total_players = GLOB.joined_player_list.len if(total_players) @@ -379,13 +379,15 @@ var/list/parts = list() var/mob/M = C.mob if(M.mind && !isnewplayer(M)) + var/datum/overmap/ship/controlled/original_ship = M.mind.original_ship?.resolve() + var/location = original_ship ? "aboard [original_ship]" : "in [station_name()]" if(M.stat != DEAD && !isbrain(M)) parts += "
" - parts += "You managed to survive the events in [station_name()] as [M.real_name]." + parts += "You managed to survive the events [location] as [M.real_name]." else parts += "
" - parts += "You did not survive the events in [station_name()]..." + parts += "You did not survive the events [location]..." else parts += "
" diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index 4795dd29e5f7..cef23857bc7a 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -1,17 +1,11 @@ -//Returns the world time in english -/proc/worldtime2text() - return gameTimestamp("hh:mm:ss", world.time) - -/proc/time_stamp(format = "hh:mm:ss", show_ds) +/proc/time_stamp(format = "YYYY-MM-DD hh:mm:ss", show_ds) var/time_string = time2text(world.timeofday, format) return show_ds ? "[time_string]:[world.timeofday % 10]" : time_string -/proc/gameTimestamp(format = "hh:mm:ss", wtime=null) - if(!wtime) - wtime = world.time +/proc/game_timestamp(format = "hh:mm:ss", wtime = world.time) return time2text(wtime - GLOB.timezoneOffset, format) -/proc/station_time(display_only = FALSE, wtime=world.time) +/proc/station_time(display_only = FALSE, wtime = world.time) return ((((wtime - SSticker.round_start_time) * SSticker.station_time_rate_multiplier) + SSticker.gametime_offset) % 864000) - (display_only? GLOB.timezoneOffset : 0) /proc/station_time_timestamp(format = "hh:mm:ss", wtime) @@ -24,15 +18,49 @@ else . += " AM" -/proc/station_time_debug(force_set) - if(isnum(force_set)) - SSticker.gametime_offset = force_set - return - SSticker.gametime_offset = rand(0, 864000) //hours in day * minutes in hour * seconds in minute * deciseconds in second - if(prob(50)) - SSticker.gametime_offset = FLOOR(SSticker.gametime_offset, 3600) - else - SSticker.gametime_offset = CEILING(SSticker.gametime_offset, 3600) +/proc/sector_datestamp(realtime = world.realtime, shortened = FALSE) + //International Fixed Calendar format (https://en.wikipedia.org/wiki/International_Fixed_Calendar) + var/days_since = round(realtime / (24 HOURS)) + var/year = round(days_since / 365) + 481 + var/day_of_year = days_since % 365 + var/month = round(day_of_year / 28) + var/day_of_month = day_of_year % 28 + 1 + + if(shortened) + return "[year]-[month]-[day_of_month]FSC" + + var/monthname + switch(month) + if(0) + monthname = "January" + if(1) + monthname = "February" + if(2) + monthname = "March" + if(3) + monthname = "April" + if(4) + monthname = "May" + if(5) + monthname = "June" + if(6) + monthname = "Sol" + if(7) + monthname = "July" + if(8) + monthname = "August" + if(9) + monthname = "September" + if(10) + monthname = "October" + if(11) + monthname = "November" + if(12) + monthname = "December" + if(13) + return "Year Day, [year] FSC" + + return "[monthname] [day_of_month], [year] FSC" //returns timestamp in a sql and a not-quite-compliant ISO 8601 friendly format /proc/SQLtime(timevar) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index efd551badefb..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 @@ -1391,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)) @@ -1408,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..419abcd6be70 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -42,6 +42,7 @@ #endif // REFERENCE_DOING_IT_LIVE //#define UNIT_TESTS //Enables unit tests via TEST_RUN_PARAMETER +//#define ALL_TESTS //Enables all tests, including the ones that take a long time to run #ifndef PRELOAD_RSC //set to: #define PRELOAD_RSC 2 // 0 to allow using external resources or on-demand behaviour; @@ -52,23 +53,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 @@ -95,6 +79,14 @@ #define GC_FAILURE_HARD_LOOKUP #endif +#ifdef ALL_TESTS +#define BASIC_TESTS +#define CREATE_AND_DESTROY_TEST +#define PLANET_GEN_TEST +#define RUIN_PLACEMENT_TEST +#define SHIP_PLACEMENT_TEST +#endif + // A reasonable number of maximum overlays an object needs // If you think you need more, rethink it #define MAX_ATOM_OVERLAYS 100 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/mapping.dm b/code/_globalvars/lists/mapping.dm index 7f1e2693f893..ff4237d1e892 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -34,6 +34,7 @@ GLOBAL_LIST_EMPTY(blobstart) //blobs, santa, respawning devils GLOBAL_LIST_EMPTY(secequipment) //sec equipment lockers that scale with the number of sec players GLOBAL_LIST_EMPTY(deathsquadspawn) GLOBAL_LIST_EMPTY(emergencyresponseteamspawn) +GLOBAL_LIST_EMPTY(emergencyresponseteam_outpostspawn) GLOBAL_LIST_EMPTY(ruin_landmarks) GLOBAL_LIST_EMPTY(stationroom_landmarks) //List of all spawns for stationrooms 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/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index 0b517e50160c..ecc1acb6f0e1 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -14,7 +14,6 @@ GLOBAL_LIST_INIT(lizard_names_female, world.file2list("strings/names/lizard_fema GLOBAL_LIST_INIT(clown_names, world.file2list("strings/names/clown.txt")) GLOBAL_LIST_INIT(mime_names, world.file2list("strings/names/mime.txt")) GLOBAL_LIST_INIT(carp_names, world.file2list("strings/names/carp.txt")) -GLOBAL_LIST_INIT(golem_names, world.file2list("strings/names/golem.txt")) GLOBAL_LIST_INIT(moth_first, world.file2list("strings/names/moth_first.txt")) GLOBAL_LIST_INIT(moth_last, world.file2list("strings/names/moth_last.txt")) GLOBAL_LIST_INIT(plasmaman_names, world.file2list("strings/names/plasmaman.txt")) diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm index 674b15ceae2c..e25b0b6e9a87 100644 --- a/code/_globalvars/lists/poll_ignore.dm +++ b/code/_globalvars/lists/poll_ignore.dm @@ -11,7 +11,6 @@ #define POLL_IGNORE_CONSTRUCT "construct" #define POLL_IGNORE_SPIDER "spider" #define POLL_IGNORE_ASHWALKER "ashwalker" -#define POLL_IGNORE_GOLEM "golem" #define POLL_IGNORE_SWARMER "swarmer" #define POLL_IGNORE_DRONE "drone" #define POLL_IGNORE_FUGITIVE "fugitive" @@ -36,7 +35,6 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list( POLL_IGNORE_CONSTRUCT = "Construct", POLL_IGNORE_SPIDER = "Spiders", POLL_IGNORE_ASHWALKER = "Ashwalker eggs", - POLL_IGNORE_GOLEM = "Golems", POLL_IGNORE_SWARMER = "Swarmer shells", POLL_IGNORE_DRONE = "Drone shells", POLL_IGNORE_FUGITIVE = "Fugitive Hunter", diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 3239cb53b8d0..c91b96db8de9 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -17,7 +17,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_EMOTEMUTE " = TRAIT_EMOTEMUTE, "TRAIT_DEAF" = TRAIT_DEAF, "TRAIT_NEARSIGHT" = TRAIT_NEARSIGHT, - "TRAIT_FAT" = TRAIT_FAT, "TRAIT_HUSK" = TRAIT_HUSK, "TRAIT_BADDNA" = TRAIT_BADDNA, "TRAIT_CLUMSY" = TRAIT_CLUMSY, 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..43ae8ffbe246 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 @@ -164,11 +164,6 @@ Override makes it so the alert is not replaced until cleared by a clear_alert wi //End gas alerts -/atom/movable/screen/alert/fat - name = "Fat" - desc = "You ate too much food, lardass. Run around and lose some weight." - icon_state = "fat" - /atom/movable/screen/alert/hungry name = "Hungry" desc = "Some food would be good right about now." @@ -313,7 +308,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 +336,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 +354,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..ca383805cc34 100644 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -57,7 +57,7 @@ pref = PARALLAX_HIGH switch(C.prefs.parallax) if (PARALLAX_INSANE) - C.parallax_throttle = FALSE + C.parallax_throttle = PARALLAX_DELAY_DEFAULT C.parallax_layers_max = 5 return TRUE @@ -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 @@ -298,13 +298,6 @@ speed = 3 layer = 3 -/atom/movable/screen/parallax_layer/random/space_gas - icon_state = "space_gas" - -/atom/movable/screen/parallax_layer/random/space_gas/Initialize(mapload, view) - . = ..() - src.add_atom_colour(SSparallax.random_parallax_color, ADMIN_COLOUR_PRIORITY) - /atom/movable/screen/parallax_layer/random/asteroids icon_state = "asteroids" 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/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 41a470aac610..6a5959574754 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -236,8 +236,8 @@ /datum/config_entry/string/wikiurl config_entry_value = "https://shiptest.net/wiki/" -/datum/config_entry/string/forumurl - config_entry_value = "https://shiptest.net/discord" +/datum/config_entry/string/loreurl + config_entry_value = "https://shiptest.net/wiki/Lore_Primer" /datum/config_entry/string/rulesurl config_entry_value = "https://shiptest.net/wiki/Rules" diff --git a/code/controllers/master.dm b/code/controllers/master.dm index f89030c51842..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 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..ae0074e9fb5b 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) @@ -216,7 +216,7 @@ SUBSYSTEM_DEF(explosions) var/y0 = epicenter.y var/z0 = epicenter.virtual_z() var/area/areatype = get_area(epicenter) - SSblackbox.record_feedback("associative", "explosion", 1, list("dev" = devastation_range, "heavy" = heavy_impact_range, "light" = light_impact_range, "flash" = flash_range, "flame" = flame_range, "orig_dev" = orig_dev_range, "orig_heavy" = orig_heavy_range, "orig_light" = orig_light_range, "x" = x0, "y" = y0, "z" = z0, "area" = areatype.type, "time" = time_stamp("YYYY-MM-DD hh:mm:ss", 1))) + SSblackbox.record_feedback("associative", "explosion", 1, list("dev" = devastation_range, "heavy" = heavy_impact_range, "light" = light_impact_range, "flash" = flash_range, "flame" = flame_range, "orig_dev" = orig_dev_range, "orig_heavy" = orig_heavy_range, "orig_light" = orig_light_range, "x" = x0, "y" = y0, "z" = z0, "area" = areatype.type, "time" = time_stamp(show_ds = TRUE))) // Play sounds; we want sounds to be different depending on distance so we will manually do it ourselves. // Stereo users will also hear the direction of the explosion! @@ -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 b362a7ed4e62..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 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..b96a4944c812 100644 --- a/code/controllers/subsystem/overmap.dm +++ b/code/controllers/subsystem/overmap.dm @@ -31,6 +31,9 @@ SUBSYSTEM_DEF(overmap) ///The two-dimensional list that contains every single tile in the overmap as a sublist. var/list/list/overmap_container + ///Whether or not a ship is currently being spawned. Used to prevent multiple ships from being spawned at once. + var/ship_spawning //TODO: Make a proper queue for this + /datum/controller/subsystem/overmap/get_metrics() . = ..() var/list/cust = list() @@ -227,13 +230,18 @@ SUBSYSTEM_DEF(overmap) * Inteded for ship purchases, etc. */ /datum/controller/subsystem/overmap/proc/spawn_ship_at_start(datum/map_template/shuttle/template) + //Should never happen, but just in case. This'll delay the next spawn until the current one is done. + UNTIL(!ship_spawning) + var/ship_loc if(template.space_spawn) ship_loc = null else ship_loc = SSovermap.outposts[1] - return new /datum/overmap/ship/controlled(ship_loc, template) + ship_spawning = TRUE + . = new /datum/overmap/ship/controlled(ship_loc, template) //This statement SHOULDN'T runtime (not counting runtimes actually in the constructor) so ship_spawning should always be toggled. + ship_spawning = FALSE /** * Creates an overmap object for each ruin level, making them accessible. @@ -262,7 +270,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 +326,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 +335,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 +358,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 +367,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/parallax.dm b/code/controllers/subsystem/parallax.dm index 3083fcfdaed7..90a6f2cfbbf1 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -8,14 +8,12 @@ SUBSYSTEM_DEF(parallax) var/planet_x_offset = 128 var/planet_y_offset = 128 var/random_layer - var/random_parallax_color //These are cached per client so needs to be done asap so people joining at roundstart do not miss these. /datum/controller/subsystem/parallax/PreInit() . = ..() - if(prob(70)) //70% chance to pick a special extra layer - random_layer = pick(/atom/movable/screen/parallax_layer/random/space_gas, /atom/movable/screen/parallax_layer/random/asteroids) - random_parallax_color = pick(COLOR_TEAL, COLOR_GREEN, COLOR_SILVER, COLOR_YELLOW, COLOR_CYAN, COLOR_ORANGE, COLOR_PURPLE)//Special color for random_layer1. Has to be done here so everyone sees the same color. + if(prob(20)) //20% chance to pick a special extra layer, in this case just asteroids, no space dirt + random_layer = /atom/movable/screen/parallax_layer/random/asteroids planet_y_offset = rand(100, 160) planet_x_offset = rand(100, 160) 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/ping.dm b/code/controllers/subsystem/ping.dm index 8886a4b61caa..cf99a4fe49c5 100644 --- a/code/controllers/subsystem/ping.dm +++ b/code/controllers/subsystem/ping.dm @@ -13,8 +13,8 @@ SUBSYSTEM_DEF(ping) var/list/currentrun = list() -/datum/controller/subsystem/ping/stat_entry() - ..("P:[GLOB.clients.len]") +/datum/controller/subsystem/ping/stat_entry(msg) + return ..("P:[GLOB.clients.len]") /datum/controller/subsystem/ping/fire(resumed = FALSE) // Prepare the new batch of clients diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index b5b8113384df..9dc117783af9 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -23,7 +23,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks) list("Ageusia","Vegetarian","Deviant Tastes"), \ list("Ananas Affinity","Ananas Aversion"), \ list("Alcohol Tolerance","Light Drinker"), \ - list("Clown Fan","Mime Fan"), \ + list("Clown Fan","Mime Fan", "RILENA Super Fan"), \ list("Bad Touch", "Friendly")) species_blacklist = list("Blood Deficiency" = list(SPECIES_IPC, SPECIES_JELLYPERSON, SPECIES_PLASMAMAN, SPECIES_VAMPIRE)) 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/statpanel.dm b/code/controllers/subsystem/statpanel.dm index 1b844f168cf9..95e40bff159f 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -11,18 +11,17 @@ SUBSYSTEM_DEF(statpanels) /datum/controller/subsystem/statpanels/fire(resumed = FALSE) if (!resumed) - var/actual_round_time = world.timeofday - SSticker.round_start_timeofday - var/game_round_time = world.time - SSticker.round_start_time var/list/global_data = list( "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]", "Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)", "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]", - "Local Time: [station_time_timestamp()]", "\n", - "Internal Round Timer: [SSticker.round_start_time ? time2text(game_round_time, "hh:mm:ss", 0) : "The round hasn't started yet!"]", - "Actual Round Timer: [SSticker.round_start_timeofday ? time2text(actual_round_time, "hh:mm:ss", 0) : "The round hasn't started yet!"]", + "Local Sector Time: [SSticker.round_start_timeofday ? "[station_time_timestamp()] [sector_datestamp()]" : "The round hasn't started yet!"]", "\n", - "Playing/Connected: [get_active_player_count()]/[GLOB.clients.len]" + "Internal Round Timer: [SSticker.round_start_timeofday ? ROUND_TIME : "The round hasn't started yet!"]", + "Actual Round Timer: [SSticker.round_start_timeofday ? ROUND_REALTIMEOFDAY : "The round hasn't started yet!"]", + "\n", + "Playing/Connected: [get_active_player_count()]/[length(GLOB.clients)]" ) if(SSshuttle.jump_mode != BS_JUMP_IDLE) @@ -133,7 +132,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 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..0a5c787d3bfd 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -36,10 +36,11 @@ SUBSYSTEM_DEF(ticker) var/selected_tip // What will be the tip of the day? var/timeLeft //pregame timer - //var/start_at WS Edit - Countdown after init - var/gametime_offset = 432000 //Deciseconds to add to world.time for station time. - var/station_time_rate_multiplier = 12 //factor of station time progressal vs real time. + /// The "start" of the round in station time, for example, 9 HOURS = 9:00 AM + var/gametime_offset = 9 HOURS + /// Factor of station time progressal vs real time. + var/station_time_rate_multiplier = 1 var/totalPlayers = 0 //used for pregame stats on statpanel var/totalPlayersReady = 0 //used for pregame stats on statpanel @@ -58,11 +59,6 @@ SUBSYSTEM_DEF(ticker) var/mode_result = "undefined" var/end_state = "undefined" - //Crew Objective stuff - var/list/successfulCrew = list() - var/list/crewobjlist = list() - var/list/crewobjjobs = list() - /// Why an emergency shuttle was called var/emergency_reason @@ -136,7 +132,6 @@ SUBSYSTEM_DEF(ticker) GLOB.syndicate_code_response_regex = codeword_match - //start_at = world.time + (CONFIG_GET(number/lobby_countdown) * 10) WS Edit - Countdown at init if(CONFIG_GET(flag/randomize_shift_time)) gametime_offset = rand(0, 23) HOURS else if(CONFIG_GET(flag/shift_time_realtime)) @@ -280,7 +275,7 @@ SUBSYSTEM_DEF(ticker) cb.InvokeAsync() LAZYCLEARLIST(round_start_events) - log_world("Game start took [(world.timeofday - init_start)/10]s") + log_world("Game start took [(REALTIMEOFDAY - init_start)/10]s") round_start_time = world.time round_start_timeofday = world.timeofday SSdbcore.SetRoundStart() @@ -508,7 +503,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 176f91cf5808..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 diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index ab220b4382b4..1e697327c844 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -78,8 +78,8 @@ SUBSYSTEM_DEF(traumas) /obj/item/spear, /obj/item/clothing/mask/gas)), "lizards" = typecacheof(list( - /obj/item/toy/plush/lizardplushie, /obj/item/reagent_containers/food/snacks/kebab/tail, /obj/item/organ/tail/lizard, - /obj/item/reagent_containers/food/drinks/bottle/lizardwine, /obj/item/clothing/head/lizard, /obj/item/clothing/shoes/cowboy/lizard)), + /obj/item/toy/plush/lizardplushie, /obj/item/organ/tail/lizard, + /obj/item/reagent_containers/food/drinks/bottle/lizardwine)), "skeletons" = typecacheof(list( /obj/item/organ/tongue/bone, /obj/item/clothing/suit/armor/bone, /obj/item/stack/sheet/bone, @@ -156,7 +156,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/clothing/under/costume/schoolgirl, /obj/item/katana, /obj/item/reagent_containers/food/snacks/sashimi, /obj/item/reagent_containers/food/snacks/chawanmushi, /obj/item/reagent_containers/food/drinks/bottle/sake, /obj/item/throwing_star, - /obj/item/clothing/head/kitty/genuine, /obj/item/clothing/suit/space/space_ninja, + /obj/item/clothing/suit/space/space_ninja, /obj/item/clothing/mask/gas/space_ninja, /obj/item/clothing/shoes/space_ninja, /obj/item/clothing/gloves/space_ninja, /obj/item/vibro_weapon, /obj/item/nullrod/scythe/vibro, /obj/item/energy_katana, /obj/item/toy/katana, /obj/item/nullrod/claymore/katana, /obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe)) @@ -177,7 +177,6 @@ SUBSYSTEM_DEF(traumas) "skeletons" = typecacheof(list(/datum/species/skeleton, /datum/species/plasmaman)), "conspiracies" = typecacheof(list(/datum/species/abductor, /datum/species/lizard)), "robots" = typecacheof(list(/datum/species/android, /datum/species/ipc)), - "the supernatural" = typecacheof(list(/datum/species/golem/runic)), "aliens" = typecacheof(list( /datum/species/abductor, /datum/species/jelly, /datum/species/pod)), "spiders" = typecacheof(list(/datum/species/spider)) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index ba64c98c56c9..b06baa1c49c2 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -120,7 +120,7 @@ SUBSYSTEM_DEF(vote) text += "Vote Result: Inconclusive - No Votes!" log_vote(text) remove_action_buttons() - to_chat(world, "\n[text]") + to_chat(world, span_purple(examine_block(text))) return . /datum/controller/subsystem/vote/proc/result() @@ -218,10 +218,10 @@ SUBSYSTEM_DEF(vote) log_vote(text) var/vp = CONFIG_GET(number/vote_period) - var/vote_message = "\n[text]\nType vote or click here to place your votes.\nYou have [DisplayTimeText(vp)] to vote." + var/vote_message = "[text]\nType vote or click here to place your votes.\nYou have [DisplayTimeText(vp)] to vote." if(observer_vote_allowed) - to_chat(world, vote_message) - SEND_SOUND(world, sound('sound/misc/vinethud.ogg')) + to_chat(world, examine_block(vote_message)) + SEND_SOUND(world, sound('sound/misc/compiler-stage2.ogg')) time_remaining = round(vp/10) for(var/c in GLOB.clients) var/client/C = c @@ -240,8 +240,8 @@ SUBSYSTEM_DEF(vote) valid_clients -= C for(var/c in valid_clients) var/client/C = c - SEND_SOUND(C, sound('sound/misc/vinethud.ogg')) - to_chat(C.mob, vote_message) + SEND_SOUND(C, sound('sound/misc/compiler-stage2.ogg')) + to_chat(C.mob, examine_block(vote_message)) var/datum/action/vote/V = new if(question) V.name = "Vote: [question]" 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..6aba94212699 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)) @@ -399,7 +399,7 @@ if ("color") settings["mainsettings"][setting]["value"] = input(user, "Enter new value for [settings["mainsettings"][setting]["desc"]]", "Enter new value for [settings["mainsettings"][setting]["desc"]]", settings["mainsettings"][setting]["value"]) as color if ("boolean") - settings["mainsettings"][setting]["value"] = input(user, "[settings["mainsettings"][setting]["desc"]]?") in list("Yes","No") + settings["mainsettings"][setting]["value"] = (settings["mainsettings"][setting]["value"] == "Yes") ? "No" : "Yes" if ("ckey") settings["mainsettings"][setting]["value"] = input(user, "[settings["mainsettings"][setting]["desc"]]?") in list("none") + GLOB.directory if (settings["mainsettings"][setting]["callback"]) diff --git a/code/datums/callback.dm b/code/datums/callback.dm index 76de87bef7a5..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) */ @@ -117,6 +117,12 @@ 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)) @@ -152,6 +158,12 @@ 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..e00261b6d9b3 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) @@ -51,3 +51,17 @@ if(!do_after(M, 20, target = parent)) return on_obj_examine(source, M) + +/datum/component/art/rilena + +/datum/component/art/rilena/apply_moodlet(mob/living/user, impress) + var/msg + if(HAS_TRAIT(user, TRAIT_FAN_RILENA)) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artgreat", /datum/mood_event/artgreat) + msg = "You love this franchise!" + else + msg = "You don't get it. At least it's not ugly." + user.visible_message( + "[user] stops and looks intently at [parent].", + "You stop to take in [parent]. [msg]" + ) 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..9ec90bf09eac 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -113,35 +113,6 @@ category= CAT_WEAPONRY subcategory = CAT_WEAPON -/datum/crafting_recipe/tailclub - name = "Tail Club" - result = /obj/item/tailclub - reqs = list(/obj/item/organ/tail/lizard = 1, - /obj/item/stack/sheet/metal = 1) - blacklist = list(/obj/item/organ/tail/lizard/fake) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/tailwhip - name = "Liz O' Nine Tails" - result = /obj/item/melee/chainofcommand/tailwhip - reqs = list(/obj/item/organ/tail/lizard = 1, - /obj/item/stack/cable_coil = 1) - blacklist = list(/obj/item/organ/tail/lizard/fake) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/catwhip - name = "Cat O' Nine Tails" - result = /obj/item/melee/chainofcommand/tailwhip/kitty - reqs = list(/obj/item/organ/tail/cat = 1, - /obj/item/stack/cable_coil = 1) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - /datum/crafting_recipe/ed209 name = "ED209" result = /mob/living/simple_animal/bot/secbot/ed209 @@ -372,28 +343,6 @@ parts = list(/obj/item/camera = 1) category = CAT_MISC -/datum/crafting_recipe/lizardhat - name = "lizard Cloche Hat" - result = /obj/item/clothing/head/lizard - time = 10 - reqs = list(/obj/item/organ/tail/lizard = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/lizardhat_alternate - name = "lizard Cloche Hat" - result = /obj/item/clothing/head/lizard - time = 10 - reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/kittyears - name = "Kitty Ears" - result = /obj/item/clothing/head/kitty/genuine - time = 10 - reqs = list(/obj/item/organ/tail/cat = 1, - /obj/item/organ/ears/cat = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/skateboard name = "Skateboard" result = /obj/vehicle/ridden/scooter/skateboard @@ -1164,9 +1113,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 + category = CAT_DRINK + +/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/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm index d02a60c0178f..4caaa55ded29 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/tailoring.dm @@ -236,13 +236,3 @@ reqs = list(/obj/item/stack/sheet/leather = 2) time = 45 category = CAT_CLOTHING - -/datum/crafting_recipe/lizardboots - name = "lizard Skin Boots" - result = /obj/effect/spawner/lootdrop/lizardboots - reqs = list( - /obj/item/stack/sheet/animalhide/lizard = 1, - /obj/item/stack/sheet/leather = 1 - ) - time = 60 - category = CAT_CLOTHING 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..177093a49fef 100644 --- a/code/datums/components/fullauto.dm +++ b/code/datums/components/fullauto.dm @@ -10,6 +10,7 @@ var/mouse_parameters var/autofire_shot_delay = 0.3 SECONDS //Time between individual shots. var/mouse_status = AUTOFIRE_MOUSEUP //This seems hacky but there can be two MouseDown() without a MouseUp() in between if the user holds click and uses alt+tab, printscreen or similar. + var/enabled = TRUE COOLDOWN_DECLARE(next_shot_cd) @@ -18,7 +19,9 @@ 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)) + RegisterSignal(parent, COMSIG_GUN_DISABLE_AUTOFIRE, PROC_REF(disable_autofire)) + RegisterSignal(parent, COMSIG_GUN_ENABLE_AUTOFIRE, PROC_REF(enable_autofire)) if(_autofire_shot_delay) autofire_shot_delay = _autofire_shot_delay if(autofire_stat == AUTOFIRE_STAT_IDLE && ismob(gun.loc)) @@ -61,13 +64,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 +86,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 @@ -101,6 +104,8 @@ SIGNAL_HANDLER var/list/modifiers = params2list(params) //If they're shift+clicking, for example, let's not have them accidentally shoot. + if(!enabled) + return if(LAZYACCESS(modifiers, SHIFT_CLICK)) return if(LAZYACCESS(modifiers, CTRL_CLICK)) @@ -136,7 +141,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 +154,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 +171,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 +248,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 +264,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,8 +280,14 @@ 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) +/datum/component/automatic_fire/proc/disable_autofire() + enabled = FALSE + +/datum/component/automatic_fire/proc/enable_autofire() + enabled = TRUE + #undef AUTOFIRE_MOUSEUP #undef AUTOFIRE_MOUSEDOWN 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..05809b5d2dd5 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -25,16 +25,16 @@ 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) to_chat(target, "[shooter] aims [weapon] point blank at you!") - shooter.apply_status_effect(STATUS_EFFECT_HOLDUP) - target.apply_status_effect(STATUS_EFFECT_HELDUP) + shooter.apply_status_effect(/datum/status_effect/holdup, shooter) + target.apply_status_effect(/datum/status_effect/grouped/heldup, shooter) if(target.job == "Captain" && target.stat == CONSCIOUS && is_nuclear_operative(shooter)) if(istype(weapon, /obj/item/gun/ballistic/rocketlauncher) && weapon.chambered) @@ -44,19 +44,20 @@ 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 - shooter.remove_status_effect(STATUS_EFFECT_HOLDUP) - target.remove_status_effect(STATUS_EFFECT_HELDUP) + shooter.remove_status_effect(/datum/status_effect/holdup) + target.remove_status_effect(/datum/status_effect/grouped/heldup, shooter) + SEND_SIGNAL(target, COMSIG_CLEAR_MOOD_EVENT, "gunpoint") 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 +92,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,17 +106,17 @@ /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() - + var/mob/living/shooter = parent + shooter.remove_status_effect(/datum/status_effect/holdup) // try doing these before the trigger gets pulled since the target (or shooter even) may not exist after pulling the trigger, dig? + target.remove_status_effect(/datum/status_effect/grouped/heldup, shooter) SEND_SIGNAL(target, COMSIG_CLEAR_MOOD_EVENT, "gunpoint") if(point_of_no_return) return point_of_no_return = TRUE - var/mob/living/shooter = parent - if(!weapon.can_shoot() || !weapon.can_trigger_gun(shooter) || (weapon.weapon_weight == WEAPON_HEAVY && shooter.get_inactive_held_item())) shooter.visible_message("[shooter] fumbles [weapon]!", \ "You fumble [weapon] and fail to fire at [target]!", target) 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..64fc96146527 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 @@ -322,12 +322,7 @@ if(HAS_TRAIT(L, TRAIT_NOHUNGER)) return FALSE //no mood events for nutrition switch(L.nutrition) - if(NUTRITION_LEVEL_FULL to INFINITY) - if (!HAS_TRAIT(L, TRAIT_VORACIOUS)) - add_event(null, "nutrition", /datum/mood_event/fat) - else - add_event(null, "nutrition", /datum/mood_event/wellfed) // round and full - if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) + if(NUTRITION_LEVEL_WELL_FED to INFINITY) add_event(null, "nutrition", /datum/mood_event/wellfed) if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) add_event(null, "nutrition", /datum/mood_event/fed) 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..2a4a9daa4ba4 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)) @@ -50,3 +50,4 @@ playsound(A, 'sound/effects/slosh.ogg', 50, TRUE) A.visible_message("The outline around [A] is washed away!") qdel(src) + 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..9e75259536ef 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) @@ -31,7 +31,7 @@ H.Paralyze(15) //zombies can't resist the doot C.Jitter(35) C.stuttering = 20 - if((!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) + if((!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) C.adjustStaminaLoss(25) //boneless humanoids don't lose the will to live to_chat(C, "DOOT") spectral_change(H) @@ -41,7 +41,7 @@ C.stuttering = 20 /datum/component/spooky/proc/spectral_change(mob/living/carbon/human/H, mob/user) - if((H.getStaminaLoss() > 95) && (!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) + if((H.getStaminaLoss() > 95) && (!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) H.Paralyze(20) H.set_species(/datum/species/skeleton) H.visible_message("[H] has given up on life as a mortal.") 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/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index 8ef68e3bfd0b..19d092156405 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -117,16 +117,6 @@ max_items = 2 max_w_class = WEIGHT_CLASS_BULKY -/datum/component/storage/concrete/pockets/holster/lt/Initialize() - original_parent = parent - . = ..() - can_hold = typecacheof(list( - /obj/item/gun/energy/e_gun/adv_stopping, - /obj/item/gun/energy/e_gun/mini, - /obj/item/gun/energy/disabler, - /obj/item/stock_parts/cell/gun - )) - /datum/component/storage/concrete/pockets/holster/nukie/Initialize() original_parent = parent . = ..() diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 5acda55b1992..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) @@ -593,7 +593,7 @@ if(over_object == M) user_show_to_mob(M) 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 @@ -604,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 @@ -613,7 +613,7 @@ to_chat(M, "[parent] seems to be [locked_flavor]!") return FALSE if(force || M.CanReach(parent, view_only = TRUE)) - if(use_sound) + if(use_sound && !silent) playsound(A, use_sound, 50, TRUE, -5) show_to(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..68c74921b8b7 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) @@ -208,26 +208,30 @@ to_chat(target, "[user] lands an expert tackle on you, knocking you down hard and maintaining a passive grab!") user.SetKnockdown(0) + user.get_up(TRUE) user.forceMove(get_turf(target)) target.adjustStaminaLoss(40) target.Paralyze(5) target.Knockdown(30) if(ishuman(target) && ishuman(user)) - INVOKE_ASYNC(S.dna.species, /datum/species.proc/grab, S, T) - S.setGrabState(GRAB_PASSIVE) + INVOKE_ASYNC(S.dna.species, TYPE_PROC_REF(/datum/species, grab), S, T) + if(S.pulling == T) + S.setGrabState(GRAB_PASSIVE) if(5 to INFINITY) // absolutely BODIED user.visible_message("[user] lands a monster tackle on [target], knocking [target.p_them()] senseless and applying an aggressive pin!", "You land a monster tackle on [target], knocking [target.p_them()] senseless and applying an aggressive pin!", target) to_chat(target, "[user] lands a monster tackle on you, knocking you senseless and aggressively pinning you!") user.SetKnockdown(0) + user.get_up(TRUE) user.forceMove(get_turf(target)) target.adjustStaminaLoss(40) target.Paralyze(5) target.Knockdown(30) if(ishuman(target) && ishuman(user)) - INVOKE_ASYNC(S.dna.species, /datum/species.proc/grab, S, T) - S.setGrabState(GRAB_AGGRESSIVE) + INVOKE_ASYNC(S.dna.species, TYPE_PROC_REF(/datum/species, grab), S, T) + if(S.pulling == T) + S.setGrabState(GRAB_AGGRESSIVE) return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH @@ -255,8 +259,6 @@ defense_mod -= 1 if(HAS_TRAIT(target, TRAIT_CLUMSY)) defense_mod -= 2 - if(HAS_TRAIT(target, TRAIT_FAT)) // chonkers are harder to knock over - defense_mod += 1 if(HAS_TRAIT(target, TRAIT_GRABWEAKNESS)) defense_mod -= 2 if(HAS_TRAIT(target, TRAIT_DWARF)) 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/weatherannouncer.dm b/code/datums/components/weatherannouncer.dm new file mode 100644 index 000000000000..3821f9a1b559 --- /dev/null +++ b/code/datums/components/weatherannouncer.dm @@ -0,0 +1,170 @@ +#define WEATHER_ALERT_CLEAR 0 +#define WEATHER_ALERT_INCOMING 1 +#define WEATHER_ALERT_IMMINENT_OR_ACTIVE 2 + +/// Component which makes you yell about what the weather is +/datum/component/weather_announcer + /// Currently displayed warning level + var/warning_level = WEATHER_ALERT_CLEAR + /// Whether the incoming weather is actually going to harm you + var/is_weather_dangerous = TRUE + /// Are we actually turned on right now? + var/enabled = TRUE + /// Overlay added when things are alright + var/state_normal + /// Overlay added when you should start looking for shelter + var/state_warning + /// Overlay added when you are in danger + var/state_danger + +/datum/component/weather_announcer/Initialize( + state_normal, + state_warning, + state_danger, +) + . = ..() + if (!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + START_PROCESSING(SSprocessing, src) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_update_overlays)) + RegisterSignal(parent, COMSIG_MACHINERY_POWER_RESTORED, PROC_REF(on_powered)) + RegisterSignal(parent, COMSIG_MACHINERY_POWER_LOST, PROC_REF(on_power_lost)) + + src.state_normal = state_normal + src.state_warning = state_warning + src.state_danger = state_danger + var/atom/speaker = parent + speaker.update_appearance(UPDATE_ICON) + update_light_color() + +/datum/component/weather_announcer/Destroy(force, silent) + STOP_PROCESSING(SSprocessing, src) + return ..() + +/// Add appropriate overlays +/datum/component/weather_announcer/proc/on_update_overlays(atom/parent_atom, list/overlays) + SIGNAL_HANDLER + if (!enabled || !state_normal || !state_warning || !state_danger) + return + + switch (warning_level) + if(WEATHER_ALERT_CLEAR) + overlays += state_normal + if(WEATHER_ALERT_INCOMING) + overlays += state_warning + if(WEATHER_ALERT_IMMINENT_OR_ACTIVE) + overlays += (is_weather_dangerous) ? state_danger : state_warning + +/// If powered, receive updates +/datum/component/weather_announcer/proc/on_powered() + SIGNAL_HANDLER + enabled = TRUE + var/atom/speaker = parent + speaker.update_appearance(UPDATE_ICON) + +/// If no power, don't receive updates +/datum/component/weather_announcer/proc/on_power_lost() + SIGNAL_HANDLER + enabled = FALSE + var/atom/speaker = parent + speaker.update_appearance(UPDATE_ICON) + +/datum/component/weather_announcer/process(seconds_per_tick) + if (!enabled) + return + + var/previous_level = warning_level + var/previous_danger = is_weather_dangerous + set_current_alert_level() + if(previous_level == warning_level && previous_danger == is_weather_dangerous) + return // No change + var/atom/movable/speaker = parent + speaker.say(get_warning_message()) + speaker.update_appearance(UPDATE_ICON) + update_light_color() + +/datum/component/weather_announcer/proc/update_light_color() + var/atom/movable/light = parent + switch(warning_level) + if(WEATHER_ALERT_CLEAR) + light.set_light_color(LIGHT_COLOR_GREEN) + if(WEATHER_ALERT_INCOMING) + light.set_light_color(LIGHT_COLOR_YELLOW) + if(WEATHER_ALERT_IMMINENT_OR_ACTIVE) + light.set_light_color(LIGHT_COLOR_INTENSE_RED) + light.update_light() + +/// Returns a string we should display to communicate what you should be doing +/datum/component/weather_announcer/proc/get_warning_message() + if (!is_weather_dangerous) + return "No risk expected from incoming weather front." + switch(warning_level) + if(WEATHER_ALERT_CLEAR) + return "All clear, no weather alerts to report." + if(WEATHER_ALERT_INCOMING) + return "Weather front incoming, begin to seek shelter." + if(WEATHER_ALERT_IMMINENT_OR_ACTIVE) + return "Weather front imminent, find shelter immediately." + return "Error in meteorological calculation. Please report this deviation to a trained programmer." + +/datum/component/weather_announcer/proc/time_till_storm() + var/datum/weather_controller/local_weather_controller = SSmapping.get_map_zone_weather_controller(parent) + if(!local_weather_controller.next_weather) + return null + for(var/type_index in local_weather_controller.current_weathers) + var/datum/weather/check_weather = local_weather_controller.current_weathers[type_index] + if(!check_weather.barometer_predictable || check_weather.stage == WIND_DOWN_STAGE || check_weather.stage == END_STAGE) + continue + warning_level = WEATHER_ALERT_IMMINENT_OR_ACTIVE + return 0 + + var/time_until_next = INFINITY + var/next_time = local_weather_controller.next_weather - world.time || INFINITY + if (next_time && next_time < time_until_next) + time_until_next = next_time + return time_until_next + +/// Polls existing weather for what kind of warnings we should be displaying. +/datum/component/weather_announcer/proc/set_current_alert_level() + var/time_until_next = time_till_storm() + if(isnull(time_until_next)) + return // No problems if there are no mining z levels + if(time_until_next >= 2 MINUTES) + warning_level = WEATHER_ALERT_CLEAR + return + + if(time_until_next >= 30 SECONDS) + warning_level = WEATHER_ALERT_INCOMING + return + + // Weather is here, now we need to figure out if it is dangerous + warning_level = WEATHER_ALERT_IMMINENT_OR_ACTIVE + + var/datum/weather_controller/local_weather_controller = SSmapping.get_map_zone_weather_controller(parent) + for(var/type_index in local_weather_controller.current_weathers) + var/datum/weather/check_weather = local_weather_controller.current_weathers[type_index] + if(!check_weather.barometer_predictable || check_weather.stage == WIND_DOWN_STAGE || check_weather.stage == END_STAGE) + continue + is_weather_dangerous = !check_weather.aesthetic + return + +/datum/component/weather_announcer/proc/on_examine(atom/radio, mob/examiner, list/examine_texts) + var/time_until_next = time_till_storm() + if(isnull(time_until_next)) + return + if (time_until_next == 0) + examine_texts += span_warning ("A storm is currently active, please seek shelter.") + else + examine_texts += span_notice("The next storm is inbound in [DisplayTimeText(time_until_next)].") + +/datum/component/weather_announcer/RegisterWithParent() + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + +/datum/component/weather_announcer/UnregisterFromParent() + .=..() + UnregisterSignal(parent, COMSIG_PARENT_EXAMINE) + +#undef WEATHER_ALERT_CLEAR +#undef WEATHER_ALERT_INCOMING +#undef WEATHER_ALERT_IMMINENT_OR_ACTIVE 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/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/advance/symptoms/species.dm b/code/datums/diseases/advance/symptoms/species.dm index 49a3cf8d07d5..b19a4d453dd5 100644 --- a/code/datums/diseases/advance/symptoms/species.dm +++ b/code/datums/diseases/advance/symptoms/species.dm @@ -27,7 +27,7 @@ severity = 0 /datum/symptom/inorganic_adaptation/OnAdd(datum/disease/advance/A) - A.infectable_biotypes |= MOB_MINERAL //Mineral covers plasmamen and golems. + A.infectable_biotypes |= MOB_MINERAL //Mineral covers plasmamen /datum/symptom/inorganic_adaptation/OnRemove(datum/disease/advance/A) A.infectable_biotypes &= ~MOB_MINERAL 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..7faf2a315e42 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -255,7 +255,7 @@ if(-INFINITY to 0) message = "You can feel your DNA exploding, we need to do something fast!" if(stability <= 0) - holder.apply_status_effect(STATUS_EFFECT_DNA_MELT) + holder.apply_status_effect(/datum/status_effect/dna_melt) if(message) to_chat(holder, message) @@ -645,7 +645,7 @@ to_chat(src, "Oh, I actually feel quite alright!") reagents.add_reagent(/datum/reagent/aslimetoxin, 10) if(6) - apply_status_effect(STATUS_EFFECT_GO_AWAY) + apply_status_effect(/datum/status_effect/go_away) if(7) to_chat(src, "Oh, I actually feel quite alright!") ForceContractDisease(new/datum/disease/decloning()) //slow acting, non-viral clone damage based GBS @@ -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/ert.dm b/code/datums/ert.dm index 8bb5f0e6e35a..0c0eb282e484 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -1,15 +1,29 @@ /datum/ert var/mobtype = /mob/living/carbon/human var/team = /datum/team/ert - var/opendoors = TRUE + var/opendoors = FALSE var/leader_role = /datum/antagonist/ert/commander - var/enforce_human = TRUE + var/enforce_human = FALSE var/roles = list(/datum/antagonist/ert/security, /datum/antagonist/ert/medic, /datum/antagonist/ert/engineer) //List of possible roles to be assigned to ERT members. var/rename_team var/code var/mission = "Assist your employers in achieving their goals. Protect corporate assets." var/teamsize = 5 var/polldesc + /// If TRUE, gives the team members "[role] [random last name]" style names + var/random_names = FALSE + /// If TRUE, the admin who created the response team will be spawned in the briefing room in their preferred briefing outfit (assuming they're a ghost) + var/spawn_admin = FALSE + /// If TRUE, we try and pick one of the most experienced players who volunteered to fill the leader slot + var/leader_experience = TRUE + /// A custom map template to spawn the ERT at. If use_custom_shuttle is FALSE, the ERT will spawn on foot. By default, a Kunai-Class. + var/datum/map_template/ert_template = /datum/map_template/shuttle/subshuttles/kunai + /// If we should actually _use_ the ert_template custom shuttle + var/use_custom_shuttle = TRUE + /// If TRUE, the ERT will spawn at the outpost. If use_custom_shuttle is also TRUE, the shuttle will be docked at the outpost + var/spawn_at_outpost = TRUE + +// Nanotrasen /datum/ert/New() if (!polldesc) @@ -46,20 +60,16 @@ code = "Green" teamsize = 1 opendoors = FALSE - leader_role = /datum/antagonist/official - roles = list(/datum/antagonist/official) + leader_role = /datum/antagonist/ert/official + roles = list(/datum/antagonist/ert/official) rename_team = "CentCom Officials" polldesc = "a CentCom Official" + random_names = FALSE + leader_experience = FALSE + spawn_at_outpost = FALSE /datum/ert/centcom_official/New() - mission = "Conduct a routine review of [station_name()]." - -/datum/ert/inquisition - roles = list(/datum/antagonist/ert/chaplain/inquisitor, /datum/antagonist/ert/security/inquisitor, /datum/antagonist/ert/medic/inquisitor) - leader_role = /datum/antagonist/ert/commander/inquisitor - rename_team = "Inquisition" - mission = "Destroy any traces of paranormal activity within the deployment site." - polldesc = "a Nanotrasen paranormal response team" + mission = "Conduct a routine review of [station_name()]'s vessels." /datum/ert/janitor roles = list(/datum/antagonist/ert/janitor, /datum/antagonist/ert/janitor/heavy) @@ -75,6 +85,170 @@ leader_role = /datum/antagonist/ert/intern/leader teamsize = 7 opendoors = FALSE + spawn_at_outpost = FALSE rename_team = "Horde of Interns" mission = "Assist in conflict resolution." polldesc = "an unpaid internship opportunity with Nanotrasen" + +/datum/ert/intern/unarmed + roles = list(/datum/antagonist/ert/intern/unarmed) + leader_role = /datum/antagonist/ert/intern/leader/unarmed + rename_team = "Unarmed Horde of Interns" + +/datum/ert/loss_prevention + code = "Light Blue" + teamsize = 4 + opendoors = FALSE + leader_role = /datum/antagonist/ert/lp/lieutenant + roles = list(/datum/antagonist/ert/lp, /datum/antagonist/ert/lp/medic, /datum/antagonist/ert/lp/engineer) + rename_team = "Loss Prevention Team" + polldesc = "a NanoTrasen loss prevention team" + +// Inteq + +/datum/ert/inteq + teamsize = 4 + opendoors = FALSE + leader_role = /datum/antagonist/ert/inteq/leader + roles = list(/datum/antagonist/ert/inteq) + mission = "Carry out your contract." + rename_team = "Generic Inteq Team" + polldesc = "an Inteq emergency team" + +// SolGov + +/datum/ert/solgov + teamsize = 4 + opendoors = FALSE + leader_role = /datum/antagonist/ert/solgov + roles = list(/datum/antagonist/ert/solgov) + mission = "Intervene in Solarian interests." + rename_team = "SolGov Sonnensoldner Team" + polldesc = "a SolGov mercenary team" + +/datum/ert/solgov/inspector + teamsize = 1 + leader_role = /datum/antagonist/ert/official/solgov + roles = list(/datum/antagonist/ert/official/solgov) + rename_team = "SolGov Inspector" + polldesc = "a solarian inspector" + spawn_at_outpost = FALSE + +/datum/ert/solgov/inspector/New() + mission = "Conduct a routine review on [station_name()]'s vessels." + +// Minutemen + +/datum/ert/minutemen + teamsize = 4 + opendoors = FALSE + leader_role = /datum/antagonist/ert/minutemen/leader + roles = list(/datum/antagonist/ert/minutemen) + mission = "Keep the peace in sector affairs" + rename_team = "Generic Minutemen Team" + polldesc = "a Minutemen emergency team" + random_names = TRUE + + +/datum/ert/minutemen/bard + leader_role = /datum/antagonist/ert/minutemen/bard/leader + roles = list(/datum/antagonist/ert/minutemen/bard) + rename_team = "Minutemen BARD Team" + polldesc = "a Minutemen biohazard removal team" + +/datum/ert/minutemen/riot + teamsize = 6 + leader_role = /datum/antagonist/ert/minutemen/riot/leader + roles = list(/datum/antagonist/ert/minutemen/riot) + rename_team = "Minutemen Riot Control Team" + polldesc = "a Minutemen riot control team" + +/datum/ert/minutemen/piratehunters + leader_role = /datum/antagonist/ert/minutemen/piratehunters/leader + roles = list(/datum/antagonist/ert/minutemen/piratehunters) + mission = "Eliminate pirate presence within the sector." + rename_team = "Minutemen Pirate Hunter Team" + polldesc = "a fireteam of Minutemen pirate hunters" + +/datum/ert/minutemen/inspector + teamsize = 1 + leader_role = /datum/antagonist/ert/official/minutemen + roles = list(/datum/antagonist/ert/official/minutemen) + rename_team = "Minutemen GOLD Inspector" + polldesc = "a Minutemen inspector" + +// Syndicate + +/datum/ert/syndicate + teamsize = 4 + opendoors = FALSE + leader_role = /datum/antagonist/ert/syndicate/leader + roles = list(/datum/antagonist/ert/syndicate) + mission = "Serve the interests of the Syndicate." + rename_team = "Generic Syndicate Team" + polldesc = "a Syndicate emergency team" + spawn_at_outpost = FALSE + +/datum/ert/syndicate/gorlex + leader_role = /datum/antagonist/ert/syndicate/gorlex/leader + roles = list(/datum/antagonist/ert/syndicate/gorlex, /datum/antagonist/ert/syndicate/gorlex/pointman, /datum/antagonist/ert/syndicate/gorlex/medic, /datum/antagonist/ert/syndicate/gorlex/sniper) + mission = "Serve the interests of the 2nd Battlegroup." + rename_team = "2nd Battlegroup Squad" + polldesc = "a loyalist Gorlex squad" + +/datum/ert/syndicate/cybersun + leader_role = /datum/antagonist/ert/syndicate/cybersun/leader + roles = list(/datum/antagonist/ert/syndicate/cybersun) + mission = "Serve the interests of CyberSun." + rename_team = "Cybersun Commando Team" + polldesc = "a Cybersun Commando team" + +/datum/ert/syndicate/cybersun/medic + leader_role = /datum/antagonist/ert/syndicate/cybersun/medic/leader + roles = list(/datum/antagonist/ert/syndicate/cybersun/medic) + mission = "Assist CyberSun clients." + rename_team = "Cybersun Medical Intervention Team" + polldesc = "a Cybersun paramedic team" + +// Frontiersmen +/datum/ert/frontier + teamsize = 4 + opendoors = FALSE + leader_role = /datum/antagonist/ert/frontier/leader + roles = list(/datum/antagonist/ert/frontier) + rename_team = "Generic Frontiersmen Team" + mission = "Pillage in the name of the Frontiersmen." + polldesc = "an armed group of pirates" + random_names = TRUE + leader_experience = FALSE + spawn_at_outpost = FALSE + ert_template = /datum/map_template/shuttle/subshuttles/sugarcube + +/datum/ert/frontier/assault + leader_role = /datum/antagonist/ert/frontier/leader + roles = list(/datum/antagonist/ert/frontier, /datum/antagonist/ert/frontier/medic, /datum/antagonist/ert/frontier/engineer) + rename_team = "Assault Frontiersmen Team" + polldesc = "a well armed squad of pirates" + ert_template = /datum/map_template/shuttle/subshuttles/frontiersmen_gut + +/datum/ert/independent + teamsize = 3 + opendoors = FALSE + leader_role = /datum/antagonist/ert/independent + roles = list(/datum/antagonist/ert/independent) + rename_team = "Security Independent Team" + polldesc = "an independent security team" + +/datum/ert/independent/emt + teamsize = 4 + leader_role = /datum/antagonist/ert/independent/emt + roles = list(/datum/antagonist/ert/independent/emt) + rename_team = "Medical Independent Team" + polldesc = "an independent medical response team" + +/datum/ert/independent/firefighter + teamsize = 5 + leader_role = /datum/antagonist/ert/independent/firefighter/leader + roles = list(/datum/antagonist/ert/independent/firefighter, /datum/antagonist/ert/independent/firefighter/medic) + rename_team = "Independent Firefighter Team" + polldesc = "an independent firefighting team" 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/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..af7d411245e2 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -57,7 +57,7 @@ var/hasSoul = TRUE // If false, renders the character unable to sell their soul. var/holy_role = NONE //is this person a chaplain or admin role allowed to use bibles, Any rank besides 'NONE' allows for this. - var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) + var/mob/living/enslaved_to //If this mind's master is another mob var/datum/language_holder/language_holder var/unconvertable = FALSE var/late_joiner = FALSE @@ -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/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index c16655ae59e3..dbaac99c4296 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -113,6 +113,14 @@ description = "I love showing off my mime pin!\n" mood_change = 1 +/datum/mood_event/rilena_fan + description = "I love my RILENA merch!\n" + mood_change = 1 + +/datum/mood_event/rilena_super_fan + description = "I love my RILENA hoodie!\n" + mood_change = 1 + /datum/mood_event/goodmusic description = "There is something soothing about this music.\n" mood_change = 3 diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm index e9ce07165326..5f873cf40ff8 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -1,8 +1,4 @@ //nutrition -/datum/mood_event/fat - description = "I'm so fat...\n" //muh fatshaming - mood_change = -6 - /datum/mood_event/wellfed description = "I'm stuffed!\n" mood_change = 8 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..97e488fcdf5a 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) @@ -376,12 +376,12 @@ /datum/mutation/human/spastic/on_acquiring() if(..()) return - owner.apply_status_effect(STATUS_EFFECT_SPASMS) + owner.apply_status_effect(/datum/status_effect/spasms) /datum/mutation/human/spastic/on_losing() if(..()) return - owner.remove_status_effect(STATUS_EFFECT_SPASMS) + owner.remove_status_effect(/datum/status_effect/spasms) /datum/mutation/human/extrastun name = "Two Left Feet" @@ -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/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 f67112e4c52f..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/" diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index afd841ff802e..cc11481b6690 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/" @@ -77,3 +77,9 @@ id = "slimelab" description = "An underground research facility devoted to researching the uncommon slime lifeform" suffix = "icemoon_underground_slimelab.dmm" + +/datum/map_template/ruin/icemoon/crashed_holemaker + name = "Crashed Holemaker" + id = "crashed_holemaker" + description = "Safety records for early Nanotrasen Spaceworks vessels were, and always have been, top of their class. Absolutely no multi-billion credit projects have been painstakingly erased from history. (Citation Needed)" + suffix = "icemoon_crashed_holemaker.dmm" diff --git a/code/datums/ruins/jungle.dm b/code/datums/ruins/jungle.dm index b6147faac1cd..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" 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..598f027fd016 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" @@ -115,12 +103,6 @@ description = "an abandoned secure storage location. there is no power left in the batteries and the former ocupants locked it pretty tight before leaving.\ You will have to power areas to raise the bolts on the doors. look out for secrets." -/datum/map_template/ruin/space/spacegym - id = "Space_Gym" - suffix = "spacegym.dmm" - name = "Space Gym" - description = "A gym, lost in space, where many grunts and moaning could be heard." - /datum/map_template/ruin/space/oldshuttle id = "oldcode-nukeops" suffix = "oldcodeops.dmm" @@ -139,12 +121,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..2135036e3d97 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" @@ -60,6 +48,12 @@ description = "Some sort of survivors, brandishing old nanotrasen security gear." suffix = "whitesands_surface_chokepoint.dmm" +/datum/map_template/ruin/whitesands/pubbyslopcrash + name = "Pubby Slop Crash" + id = "ws-pubbyslopcrash" + description = "A failed attempt of the Nanotrasen nutrional replacement program" + suffix = "whitesands_surface_pubbyslopcrash.dmm" + //////////OUTSIDE SETTLEMENTS/RUINS////////// /datum/map_template/ruin/whitesands/survivors/drugstore name = "Abandoned Store" @@ -71,6 +65,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" @@ -78,3 +73,4 @@ description = "A small encampment of nomadic survivors of the First Colony, and their descendants. By all accounts, feral and without allegance to anyone but themselves." suffix = "whitesands_surface_camp_combination.dmm" allow_duplicates = FALSE + diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index c294d25dee10..35e8ff81a580 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -365,4 +365,3 @@ 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..af8de572b991 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -22,7 +22,7 @@ /datum/status_effect/shadow_mend/on_remove() owner.visible_message("The violet light around [owner] glows black!", "The tendrils around you cinch tightly and reap their toll...") playsound(owner, 'sound/magic/teleport_diss.ogg', 50, TRUE) - owner.apply_status_effect(STATUS_EFFECT_VOID_PRICE) + owner.apply_status_effect(/datum/status_effect/void_price) /datum/status_effect/void_price @@ -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 ..() @@ -308,7 +308,7 @@ STOP_PROCESSING(SSprocessing, src) //Hippocratic Oath: Applied when the Rod of Asclepius is activated. -/datum/status_effect/hippocraticOath +/datum/status_effect/hippocratic_oath id = "Hippocratic Oath" status_type = STATUS_EFFECT_UNIQUE duration = -1 @@ -318,19 +318,19 @@ var/hand var/deathTick = 0 -/datum/status_effect/hippocraticOath/on_apply() +/datum/status_effect/hippocratic_oath/on_apply() //Makes the user passive, it's in their oath not to harm! - ADD_TRAIT(owner, TRAIT_PACIFISM, "hippocraticOath") + ADD_TRAIT(owner, TRAIT_PACIFISM, "hippocratic_oath") var/datum/atom_hud/H = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] H.add_hud_to(owner) return ..() -/datum/status_effect/hippocraticOath/on_remove() - REMOVE_TRAIT(owner, TRAIT_PACIFISM, "hippocraticOath") +/datum/status_effect/hippocratic_oath/on_remove() + REMOVE_TRAIT(owner, TRAIT_PACIFISM, "hippocratic_oath") var/datum/atom_hud/H = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] H.remove_hud_from(owner) -/datum/status_effect/hippocraticOath/tick() +/datum/status_effect/hippocratic_oath/tick() if(owner.stat == DEAD) if(deathTick < 4) deathTick += 1 @@ -395,7 +395,7 @@ var/mob/living/simple_animal/SM = L SM.adjustHealth(-3.5, forced = TRUE) -/datum/status_effect/hippocraticOath/proc/consume_owner() +/datum/status_effect/hippocratic_oath/proc/consume_owner() owner.visible_message("[owner]'s soul is absorbed into the rod, relieving the previous snake of its duty.") var/mob/living/simple_animal/hostile/retaliate/poison/snake/healSnake = new(owner.loc) var/list/chems = list(/datum/reagent/medicine/sal_acid, /datum/reagent/medicine/c2/convermol, /datum/reagent/medicine/oxandrolone) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index fdc1710c9ea7..66b69f0403e5 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -219,52 +219,6 @@ desc = "Your biological functions have halted. You could live forever this way, but it's pretty boring." icon_state = "stasis" -//GOLEM GANG - -//OTHER DEBUFFS -/datum/status_effect/strandling //get it, strand as in durathread strand + strangling = strandling hahahahahahahahahahhahahaha i want to die - id = "strandling" - status_type = STATUS_EFFECT_UNIQUE - alert_type = /atom/movable/screen/alert/status_effect/strandling - -/datum/status_effect/strandling/on_apply() - ADD_TRAIT(owner, TRAIT_MAGIC_CHOKE, "dumbmoron") - return ..() - -/datum/status_effect/strandling/on_remove() - REMOVE_TRAIT(owner, TRAIT_MAGIC_CHOKE, "dumbmoron") - return ..() - -/atom/movable/screen/alert/status_effect/strandling - name = "Choking strand" - desc = "A magical strand of Durathread is wrapped around your neck, preventing you from breathing! Click this icon to remove the strand." - icon_state = "his_grace" - alerttooltipstyle = "hisgrace" - -/atom/movable/screen/alert/status_effect/strandling/Click(location, control, params) - . = ..() - if(usr != owner) - return - to_chat(owner, "You attempt to remove the durathread strand from around your neck.") - if(do_after(owner, 35, null, owner)) - if(isliving(owner)) - var/mob/living/L = owner - to_chat(owner, "You succesfuly remove the durathread strand.") - L.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND) - - -/datum/status_effect/pacify/on_creation(mob/living/new_owner, set_duration) - if(isnum(set_duration)) - duration = set_duration - . = ..() - -/datum/status_effect/pacify/on_apply() - ADD_TRAIT(owner, TRAIT_PACIFISM, "status_effect") - return ..() - -/datum/status_effect/pacify/on_remove() - REMOVE_TRAIT(owner, TRAIT_PACIFISM, "status_effect") - //OTHER DEBUFFS /datum/status_effect/pacify id = "pacify" @@ -374,11 +328,11 @@ H.emote(pick("gasp", "gag", "choke")) /mob/living/proc/apply_necropolis_curse(set_curse) - var/datum/status_effect/necropolis_curse/C = has_status_effect(STATUS_EFFECT_NECROPOLIS_CURSE) + var/datum/status_effect/necropolis_curse/C = has_status_effect(/datum/status_effect/necropolis_curse) if(!set_curse) set_curse = pick(CURSE_BLINDING, CURSE_SPAWNING, CURSE_WASTING, CURSE_GRASPING) if(QDELETED(C)) - apply_status_effect(STATUS_EFFECT_NECROPOLIS_CURSE, set_curse) + apply_status_effect(/datum/status_effect/necropolis_curse, set_curse) else C.apply_curse(set_curse) C.duration += 3000 //time added by additional curses @@ -468,7 +422,7 @@ deltimer(timerid) -/datum/status_effect/gonbolaPacify +/datum/status_effect/gonbola_pacify id = "gonbolaPacify" status_type = STATUS_EFFECT_MULTIPLE tick_interval = -1 @@ -508,7 +462,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 +490,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..18480d302cdc 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() . = ..() @@ -158,12 +158,12 @@ desc = "Making any sudden moves would probably be a bad idea!" icon_state = "aimed" -/datum/status_effect/heldup/on_apply() - owner.apply_status_effect(STATUS_EFFECT_SURRENDER) +/datum/status_effect/grouped/heldup/on_apply() + owner.apply_status_effect(/datum/status_effect/surrender, src) return ..() -/datum/status_effect/heldup/on_remove() - owner.remove_status_effect(STATUS_EFFECT_SURRENDER) +/datum/status_effect/grouped/heldup/on_remove() + owner.remove_status_effect(/datum/status_effect/surrender, src) return ..() // holdup is for the person aiming @@ -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..dda39c21df55 100644 --- a/code/datums/tgs_event_handler.dm +++ b/code/datums/tgs_event_handler.dm @@ -1,5 +1,6 @@ /datum/tgs_event_handler/impl var/datum/timedevent/reattach_timer + var/datum/timedevent/delay_end_timer /datum/tgs_event_handler/impl/HandleEvent(event_code, ...) switch(event_code) @@ -14,28 +15,44 @@ message_admins("TGS: Instance renamed to from [world.TgsInstanceName()] to [args[2]]") if(TGS_EVENT_COMPILE_START) message_admins("TGS: Deployment started, new game version incoming...") + SSticker.delay_end = ROUND_END_TGS + SSticker.admin_delay_notice = "TGS Deployment in progress, please wait..." + delay_end_timer = addtimer(CALLBACK(src, PROC_REF(end_delay)), 5 MINUTES, TIMER_STOPPABLE) if(TGS_EVENT_COMPILE_CANCELLED) message_admins("TGS: Deployment cancelled!") + end_delay() if(TGS_EVENT_COMPILE_FAILURE) message_admins("TGS: Deployment failed!") + end_delay() if(TGS_EVENT_DEPLOYMENT_COMPLETE) message_admins("TGS: Deployment complete!") - to_chat(world, "Server updated, changes will be applied on the next round...") + to_chat(world, span_boldannounce("Server updated, changes will be applied on the next round...")) + end_delay() 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, TIMER_STOPPABLE) if(TGS_EVENT_WATCHDOG_REATTACH) var/datum/tgs_version/old_version = world.TgsVersion() var/datum/tgs_version/new_version = args[2] if(!old_version.Equals(new_version)) - to_chat(world, "TGS updated to v[new_version.deprefixed_parameter]") + to_chat(world, span_boldannounce("TGS updated to v[new_version.deprefixed_parameter]")) else message_admins("TGS: Back online") if(reattach_timer) deltimer(reattach_timer) reattach_timer = null if(TGS_EVENT_WATCHDOG_SHUTDOWN) - to_chat_immediate(world, "Server is shutting down!") + to_chat_immediate(world, span_boldannounce("Server is shutting down!")) /datum/tgs_event_handler/impl/proc/LateOnReattach() message_admins("Warning: TGS hasn't notified us of it coming back for a full minute! Is there a problem?") + +/datum/tgs_event_handler/impl/proc/end_delay() + if(SSticker.delay_end == ROUND_END_TGS) + SSticker.delay_end = ROUND_END_NOT_DELAYED + SSticker.admin_delay_notice = null + if(delay_end_timer) + deltimer(delay_end_timer) + delay_end_timer = null + if(SSticker.ready_for_reboot && !SSticker.delay_end) //we undelayed after standard reboot would occur + SSticker.standard_reboot() 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/good.dm b/code/datums/traits/good.dm index c3a473ecd992..52ee20e23c27 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -82,6 +82,26 @@ var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] fan.add_hud_to(H) +/datum/quirk/fan_rilena + name = "RILENA Super Fan" + desc = "You are a major fan of the popular webseries RILENA: LMR. You get a mood boost from plushies of your favorite characters, and wearing your Xader pin." + value = 1 + mob_traits = list(TRAIT_FAN_RILENA) + gain_text = "You are a huge fan of a certain combination webcomic and bullet hell game." + gain_text = "Suddenly, bullet hell games and webcomics don't seem all that interesting anymore..." + medical_record_text = "Patient reports being a huge fan of RILENA." + +/datum/quirk/fan_rilena/on_spawn() + var/mob/living/carbon/human/H = quirk_holder + var/obj/item/clothing/accessory/rilena_pin/B = new(get_turf(H)) + var/list/slots = list ( + "backpack" = ITEM_SLOT_BACKPACK, + "hands" = ITEM_SLOT_HANDS, + ) + H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE) + var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] + fan.add_hud_to(H) + /datum/quirk/fan_mime name = "Mime Fan" desc = "You enjoy mime antics and get a mood boost from wearing your mime pin." 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/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 31d9f39c7e30..f50b7655a119 100644 --- a/code/game/area/areas/outpost.dm +++ b/code/game/area/areas/outpost.dm @@ -22,6 +22,9 @@ icon_state = "quartoffice" sound_environment = SOUND_AREA_SMALL_SOFTFLOOR +/area/outpost/cargo/smeltery + name = "Smeltery" + icon_state = "mining_production" /area/outpost/crew name = "Crew Quarters" @@ -68,6 +71,11 @@ icon_state = "library" sound_environment = SOUND_AREA_LARGE_SOFTFLOOR +/area/outpost/crew/bathroom + name = "Bathroom" + icon_state = "restrooms" + sound_environment = SOUND_ENVIRONMENT_BATHROOM + /area/outpost/crew/lounge name = "Lounge" icon_state = "lounge" @@ -174,6 +182,9 @@ name = "Armory" icon_state = "armory" +/area/outpost/security/checkpoint + name = "Security Checkpoint" + icon_state = "checkpoint1" /area/outpost/storage name = "Storage" @@ -181,7 +192,6 @@ lighting_colour_tube = "#ffce93" lighting_colour_bulb = "#ffbc6f" - /area/outpost/vacant_rooms name = "Vacant Rooms" icon_state = "vacant_commissary" @@ -190,6 +200,18 @@ name = "Vacant Office" icon_state = "vacant_office" +/area/outpost/vacant_rooms/shop + name = "Shop" + icon_state = "vacant_room" + +//for powered outdoors non-space areas -- uses ice planet ambience + +/area/outpost/exterior + name = "Exterior" + icon_state = "green" + sound_environment = SOUND_ENVIRONMENT_CAVE + ambientsounds = SPOOKY + // this might be redundant with /area/space/nearstation. unsure; use with caution? /area/outpost/external name = "External" diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index 0d449f6035a8..95200f5d51b9 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -61,3 +61,8 @@ /area/ruin/powered/slimelab/cafe name = "Slime Lab Cafe" icon_state = "green" + +// Crashed Holemaker +/area/ruin/unpowered/crashed_holemaker + name = "NTSV Holemaker II" // In honor of the kugelblitz shenanigan of all time + icon_state = "green" 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/sandplanet.dm b/code/game/area/areas/ruins/sandplanet.dm index 5c3d509d589a..e2fb00acdc10 100644 --- a/code/game/area/areas/ruins/sandplanet.dm +++ b/code/game/area/areas/ruins/sandplanet.dm @@ -5,3 +5,7 @@ /area/ruin/whitesands/saloon name = "Hermit Saloon" icon_state = "green" + +/area/ruin/whitesands/pubbycrash + name = "Pubby Crash" + icon_state = "blue" diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 769c509734bd..a249ef4ec9f7 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 @@ -187,6 +174,7 @@ /area/solar/ancientstation name = "Charlie Station Solar Array" icon_state = "panelsP" + has_gravity = STANDARD_GRAVITY //DERELICT @@ -366,16 +354,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 @@ -390,12 +368,6 @@ name = "Engineering Wing" icon_state = "yellow" -//Space Gym - -/area/ruin/space/has_grav/spacegym - name = "Space Gym" - icon_state = "firingrange" - //scav_mining /area/ruin/space/has_grav/scav_mining/entrance diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 084736fb7069..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) * @@ -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 81cd538a7e45..b8dcd669d385 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -159,10 +159,10 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) return if(threatadd > 0) create_threat(threatadd) - threat_log += "[worldtime2text()]: [key_name(usr)] increased threat by [threatadd] threat." + threat_log += "[game_timestamp()]: [key_name(usr)] increased threat by [threatadd] threat." else spend_threat(-threatadd) - threat_log += "[worldtime2text()]: [key_name(usr)] decreased threat by [-threatadd] threat." + threat_log += "[game_timestamp()]: [key_name(usr)] decreased threat by [-threatadd] threat." else if (href_list["injectlate"]) latejoin_injection_cooldown = 0 forced_injection = TRUE @@ -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. @@ -478,7 +478,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) var/added_threat = starting_rule.scale_up(extra_rulesets_amount, threat) if(starting_rule.pre_execute()) spend_threat(starting_rule.cost + added_threat) - threat_log += "[worldtime2text()]: Roundstart [starting_rule.name] spent [starting_rule.cost + added_threat]. [starting_rule.scaling_cost ? "Scaled up[starting_rule.scaled_times]/3 times." : ""]" + threat_log += "[game_timestamp()]: Roundstart [starting_rule.name] spent [starting_rule.cost + added_threat]. [starting_rule.scaling_cost ? "Scaled up[starting_rule.scaled_times]/3 times." : ""]" if(starting_rule.flags & HIGHLANDER_RULESET) highlander_executed = TRUE else if(starting_rule.flags & ONLY_RULESET) @@ -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. @@ -572,7 +572,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) new_rule.trim_candidates() if (new_rule.ready(forced)) spend_threat(new_rule.cost) - threat_log += "[worldtime2text()]: Forced rule [new_rule.name] spent [new_rule.cost]" + threat_log += "[game_timestamp()]: Forced rule [new_rule.name] spent [new_rule.cost]" if (new_rule.execute()) // This should never fail since ready() returned 1 if(new_rule.flags & HIGHLANDER_RULESET) highlander_executed = TRUE @@ -591,7 +591,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) /datum/game_mode/dynamic/proc/execute_midround_latejoin_rule(sent_rule) var/datum/dynamic_ruleset/rule = sent_rule spend_threat(rule.cost) - threat_log += "[worldtime2text()]: [rule.ruletype] [rule.name] spent [rule.cost]" + threat_log += "[game_timestamp()]: [rule.ruletype] [rule.name] spent [rule.cost]" rule.pre_execute() if (rule.execute()) log_game("DYNAMIC: Injected a [rule.ruletype == "latejoin" ? "latejoin" : "midround"] ruleset [rule.name].") diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm index 44e6a5310d17..1e6a2da4d867 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm @@ -166,7 +166,7 @@ /// This one only handles refunding the threat, override in ruleset to clean up the rest. /datum/dynamic_ruleset/proc/clean_up() mode.refund_threat(cost + (scaled_times * scaling_cost)) - mode.threat_log += "[worldtime2text()]: [ruletype] [name] refunded [cost + (scaled_times * scaling_cost)]. Failed to execute." + mode.threat_log += "[game_timestamp()]: [ruletype] [name] refunded [cost + (scaled_times * scaling_cost)]. Failed to execute." /// Gets weight of the ruleset /// Note that this decreases weight if repeatable is TRUE and repeatable_weight_decrease is higher than 0 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 29333ce332d4..8c8fe19d0a97 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -355,7 +355,7 @@ message_admins("Starting a round of extended.") log_game("Starting a round of extended.") mode.spend_threat(mode.threat) - mode.threat_log += "[worldtime2text()]: Extended ruleset set threat to 0." + mode.threat_log += "[game_timestamp()]: Extended ruleset set threat to 0." return TRUE ////////////////////////////////////////////// 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/Sleeper.dm b/code/game/machinery/Sleeper.dm index f0a1c403cfa4..4b97379ab030 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -98,13 +98,13 @@ if(target != occupant || !can_stasis) return playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = rand(5120, 8800)) - target.apply_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) + target.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_MACHINE_EFFECT) target.ExtinguishMob() use_power = ACTIVE_POWER_USE /obj/machinery/sleeper/proc/thaw_them(mob/living/target) if(IS_IN_STASIS(target)) - target.remove_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) + target.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_MACHINE_EFFECT) playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = rand(5120, 8800)) /obj/machinery/sleeper/process() 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/autolathe.dm b/code/game/machinery/autolathe.dm index b6fb1f27f5a1..d83831f2c634 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -5,6 +5,7 @@ /obj/machinery/autolathe name = "autolathe" desc = "It produces items using metal and glass and maybe other materials, can take design disks." + icon = 'icons/obj/machines/autolathe.dmi' icon_state = "autolathe" density = TRUE use_power = IDLE_POWER_USE @@ -49,7 +50,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 +252,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/crew.dm b/code/game/machinery/computer/crew.dm index 589289c595db..f875defd6044 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -44,6 +44,10 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) ui = new(user, src, "CrewConsole") ui.open() +/datum/crewmonitor/ui_close(mob/user) + ui_sources -= user + return ..() + /datum/crewmonitor/proc/show(mob/M, source) ui_sources[M] = source ui_interact(M) 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/medical.dm b/code/game/machinery/computer/medical.dm index 498342d62891..17c5dc2ef39c 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -472,7 +472,7 @@ var/counter = 1 while(active2.fields[text("com_[]", counter)]) counter++ - active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
[]", authenticated, rank, station_time_timestamp(), time2text(world.realtime, "MMM DD"), "504 FS", t1) + active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], []
[]", authenticated, rank, station_time_timestamp(), sector_datestamp(), t1) else if(href_list["del_c"]) if((istype(active2, /datum/data/record) && active2.fields[text("com_[]", href_list["del_c"])])) 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/security.dm b/code/game/machinery/computer/security.dm index de05cce3ac77..2dc9a2c98bed 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -478,7 +478,7 @@ What a mess.*/ var/counter = 1 while(active2.fields[text("com_[]", counter)]) counter++ - active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
[]", src.authenticated, src.rank, station_time_timestamp(), time2text(world.realtime, "MMM DD"), "504 FS", t1) + active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], []
[]", src.authenticated, src.rank, station_time_timestamp(), sector_datestamp(shortened = TRUE), t1) if("Delete Record (ALL)") if(active1) 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..ac66aa4f6f26 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 @@ -339,7 +339,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod/retro, 17) var/list/frozen_details = list() frozen_details["name"] = "[mob_occupant.real_name]" frozen_details["rank"] = announce_rank || "[mob_occupant.job]" - frozen_details["time"] = gameTimestamp() + frozen_details["time"] = station_time_timestamp() control_computer_obj.frozen_crew += list(frozen_details) diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 04fe3c750ca1..20c3d66e8585 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -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 92fb368bdc19..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 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 69169d167f3e..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 @@ -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/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 deleted file mode 100644 index 28c6d3d3ee2a..000000000000 --- a/code/game/machinery/fat_sucker.dm +++ /dev/null @@ -1,217 +0,0 @@ -/obj/machinery/fat_sucker - name = "lipid extractor" - desc = "Safely and efficiently extracts excess fat from a subject." - icon = 'icons/obj/machines/fat_sucker.dmi' - icon_state = "fat" - - state_open = FALSE - density = TRUE - req_access = list(ACCESS_KITCHEN) - var/processing = FALSE - var/start_at = NUTRITION_LEVEL_WELL_FED - var/stop_at = NUTRITION_LEVEL_STARVING - var/free_exit = TRUE //set to false to prevent people from exiting before being completely stripped of fat - var/bite_size = 15 //amount of nutrients we take per process - var/nutrients //amount of nutrients we got build up - var/nutrient_to_meat = 90 //one slab of meat gives about 52 nutrition - var/datum/looping_sound/microwave/soundloop //100% stolen from microwaves - var/breakout_time = 600 - - var/next_fact = 10 //in ticks, so about 20 seconds - var/static/list/fat_facts = list(\ - "Fats are triglycerides made up of a combination of different building blocks; glycerol and fatty acids.", \ - "Adults should get a recommended 20-35% of their energy intake from fat.", \ - "Being overweight or obese puts you at an increased risk of chronic diseases, such as cardiovascular diseases, metabolic syndrome, type 2 diabetes and some types of cancers.", \ - "Not all fats are bad. A certain amount of fat is an essential part of a healthy balanced diet. " , \ - "Saturated fat should form no more than 11% of your daily calories.", \ - "Unsaturated fat, that is monounsaturated fats, polyunsaturated fats and omega-3 fatty acids, is found in plant foods and fish." \ - ) - -/obj/machinery/fat_sucker/Initialize() - . = ..() - soundloop = new(list(src), FALSE) - update_appearance() - -/obj/machinery/fat_sucker/Destroy() - QDEL_NULL(soundloop) - return ..() - -/obj/machinery/fat_sucker/RefreshParts() - ..() - var/rating = 0 - for(var/obj/item/stock_parts/micro_laser/L in component_parts) - rating += L.rating - bite_size = initial(bite_size) + rating * 5 - nutrient_to_meat = initial(nutrient_to_meat) - rating * 5 - -/obj/machinery/fat_sucker/examine(mob/user) - . = ..() - . += {"Alt-Click to toggle the safety hatch. - Removing [bite_size] nutritional units per operation. - Requires [nutrient_to_meat] nutritional units per meat slab."} - -/obj/machinery/fat_sucker/close_machine(mob/user) - if(panel_open) - to_chat(user, "You need to close the maintenance hatch first!") - return - ..() - playsound(src, 'sound/machines/click.ogg', 50) - if(occupant) - if(!iscarbon(occupant)) - occupant.forceMove(drop_location()) - occupant = null - return - to_chat(occupant, "You enter [src].") - addtimer(CALLBACK(src, .proc/start_extracting), 20, TIMER_OVERRIDE|TIMER_UNIQUE) - update_appearance() - -/obj/machinery/fat_sucker/open_machine(mob/user) - make_meat() - playsound(src, 'sound/machines/click.ogg', 50) - if(processing) - stop() - ..() - -/obj/machinery/fat_sucker/container_resist_act(mob/living/user) - if(!free_exit || state_open) - to_chat(user, "The emergency release is not responding! You start pushing against the hull!") - user.changeNext_move(CLICK_CD_BREAKOUT) - user.last_special = world.time + CLICK_CD_BREAKOUT - user.visible_message("You see [user] kicking against the door of [src]!", \ - "You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)", \ - "You hear a metallic creaking from [src].") - if(do_after(user, breakout_time, target = src)) - if(!user || user.stat != CONSCIOUS || user.loc != src || state_open) - return - free_exit = TRUE - user.visible_message("[user] successfully broke out of [src]!", \ - "You successfully break out of [src]!") - open_machine() - return - open_machine() - -/obj/machinery/fat_sucker/interact(mob/user) - if(state_open) - close_machine() - else if(!processing || free_exit) - open_machine() - else - to_chat(user, "The safety hatch has been disabled!") - -/obj/machinery/fat_sucker/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE)) - return - if(user == occupant) - to_chat(user, "You can't reach the controls from inside!") - return - if(!(obj_flags & EMAGGED) && !allowed(user)) - to_chat(user, "You lack the required access.") - return - free_exit = !free_exit - to_chat(user, "Safety hatch [free_exit ? "unlocked" : "locked"].") - -/obj/machinery/fat_sucker/update_overlays() - . = ..() - - if(!state_open) - if(processing) - . += "[icon_state]_door_on" - . += "[icon_state]_stack" - . += "[icon_state]_smoke" - . += "[icon_state]_green" - else - . += "[icon_state]_door_off" - if(occupant) - if(powered()) - . += "[icon_state]_stack" - . += "[icon_state]_yellow" - else - . += "[icon_state]_red" - else if(powered()) - . += "[icon_state]_red" - if(panel_open) - . += "[icon_state]_panel" - -/obj/machinery/fat_sucker/process() - if(!processing) - return - if(!powered() || !occupant || !iscarbon(occupant)) - open_machine() - return - - var/mob/living/carbon/C = occupant - if(C.nutrition <= stop_at) - open_machine() - playsound(src, 'sound/machines/microwave/microwave-end.ogg', 100, FALSE) - return - C.adjust_nutrition(-bite_size) - nutrients += bite_size - - if(next_fact <= 0) - next_fact = initial(next_fact) - say(pick(fat_facts)) - playsound(loc, 'sound/machines/chime.ogg', 30, FALSE) - else - next_fact-- - use_power(500) - -/obj/machinery/fat_sucker/proc/start_extracting() - if(state_open || !occupant || processing || !powered()) - return - if(iscarbon(occupant)) - var/mob/living/carbon/C = occupant - if(C.nutrition > start_at) - processing = TRUE - soundloop.start() - update_appearance() - set_light(2, 1, "#ff0000") - else - say("Subject not fat enough.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) - overlays += "[icon_state]_red" //throw a red light icon over it, to show that it wont work - -/obj/machinery/fat_sucker/proc/stop() - processing = FALSE - soundloop.stop() - set_light(0, 0) - -/obj/machinery/fat_sucker/proc/make_meat() - if(occupant && iscarbon(occupant)) - var/mob/living/carbon/C = occupant - if(C.type_of_meat) - if(nutrients >= nutrient_to_meat * 2) - C.put_in_hands(new /obj/item/reagent_containers/food/snacks/cookie (), TRUE) - while(nutrients >= nutrient_to_meat) - nutrients -= nutrient_to_meat - new C.type_of_meat (drop_location()) - while(nutrients >= nutrient_to_meat / 3) - nutrients -= nutrient_to_meat / 3 - new /obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain (drop_location()) - nutrients = 0 - -/obj/machinery/fat_sucker/screwdriver_act(mob/living/user, obj/item/I) - . = TRUE - if(..()) - return - if(occupant) - to_chat(user, "[src] is currently occupied!") - return - if(state_open) - to_chat(user, "[src] must be closed to [panel_open ? "close" : "open"] its maintenance hatch!") - return - if(default_deconstruction_screwdriver(user, icon_state, icon_state, I)) - update_appearance() - return - return FALSE - -/obj/machinery/fat_sucker/crowbar_act(mob/living/user, obj/item/I) - if(default_deconstruction_crowbar(I)) - return TRUE - -/obj/machinery/fat_sucker/emag_act(mob/living/user) - if(obj_flags & EMAGGED) - return - start_at = 100 - stop_at = 0 - to_chat(user, "You remove the access restrictions and lower the automatic ejection threshold!") - obj_flags |= EMAGGED 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 16d7386273d8..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 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/recharger.dm b/code/game/machinery/recharger.dm index 3ca96ae5dcba..c604b3eeccf6 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -12,6 +12,8 @@ var/obj/item/charging = null var/recharge_coeff = 1 var/using_power = FALSE //Did we put power into "charging" last process()? + ///Did we finish recharging the currently inserted item? + var/finished_recharging = FALSE var/static/list/allowed_devices = typecacheof(list( /obj/item/gun/energy, @@ -47,6 +49,7 @@ charging = new_charging if (new_charging) START_PROCESSING(SSmachines, src) + finished_recharging = FALSE use_power = ACTIVE_POWER_USE using_power = TRUE update_appearance() @@ -143,6 +146,10 @@ using_power = TRUE update_appearance() return + if(!using_power && !finished_recharging) //Inserted thing is at max charge/ammo, notify those around us + finished_recharging = TRUE + playsound(src, 'sound/machines/ping.ogg', 30, TRUE) + say("[charging] has finished recharging!") else return PROCESS_KILL 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..afc154a0c95a 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scan_gate.dm @@ -5,7 +5,6 @@ #define SCANGATE_GUNS "Guns" #define SCANGATE_WANTED "Wanted" #define SCANGATE_SPECIES "Species" -#define SCANGATE_NUTRITION "Nutrition" #define SCANGATE_HUMAN "human" #define SCANGATE_LIZARD "lizard" @@ -14,7 +13,6 @@ #define SCANGATE_MOTH "moth" #define SCANGATE_JELLY "jelly" #define SCANGATE_POD "pod" -#define SCANGATE_GOLEM "golem" #define SCANGATE_ZOMBIE "zombie" #define SCANGATE_SPIDER "rachnid" #define SCANGATE_IPC "ipc" @@ -39,13 +37,12 @@ var/nanite_cloud = 1 var/detect_species = SCANGATE_HUMAN var/reverse = FALSE //If true, signals if the scan returns false - var/detect_nutrition = NUTRITION_LEVEL_FAT /obj/machinery/scanner_gate/Initialize() . = ..() 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 +56,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 +67,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() @@ -143,8 +140,6 @@ scan_species = /datum/species/jelly if(SCANGATE_POD) scan_species = /datum/species/pod - if(SCANGATE_GOLEM) - scan_species = /datum/species/golem if(SCANGATE_ZOMBIE) scan_species = /datum/species/zombie if(SCANGATE_SPIDER) @@ -165,13 +160,6 @@ if(istype(I, /obj/item/gun)) beep = TRUE break - if(SCANGATE_NUTRITION) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.nutrition <= detect_nutrition && detect_nutrition == NUTRITION_LEVEL_STARVING) - beep = TRUE - if(H.nutrition >= detect_nutrition && detect_nutrition == NUTRITION_LEVEL_FAT) - beep = TRUE if(reverse) beep = !beep @@ -207,7 +195,6 @@ data["nanite_cloud"] = nanite_cloud data["disease_threshold"] = disease_threshold data["target_species"] = detect_species - data["target_nutrition"] = detect_nutrition return data /obj/machinery/scanner_gate/ui_act(action, params) @@ -240,19 +227,6 @@ var/new_species = params["new_species"] detect_species = new_species . = TRUE - if("set_target_nutrition") - var/new_nutrition = params["new_nutrition"] - var/nutrition_list = list( - "Starving", - "Obese" - ) - if(new_nutrition && (new_nutrition in nutrition_list)) - switch(new_nutrition) - if("Starving") - detect_nutrition = NUTRITION_LEVEL_STARVING - if("Obese") - detect_nutrition = NUTRITION_LEVEL_FAT - . = TRUE #undef SCANGATE_NONE #undef SCANGATE_MINDSHIELD @@ -261,7 +235,6 @@ #undef SCANGATE_GUNS #undef SCANGATE_WANTED #undef SCANGATE_SPECIES -#undef SCANGATE_NUTRITION #undef SCANGATE_HUMAN #undef SCANGATE_LIZARD @@ -270,7 +243,6 @@ #undef SCANGATE_MOTH #undef SCANGATE_JELLY #undef SCANGATE_POD -#undef SCANGATE_GOLEM #undef SCANGATE_ZOMBIE #undef SCANGATE_SPIDER #undef SCANGATE_IPC 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/stasis.dm b/code/game/machinery/stasis.dm index 37e079715dcd..d354e8c776e0 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -110,12 +110,12 @@ return var/freq = rand(24750, 26550) playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 2, frequency = freq) - target.apply_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) + target.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_MACHINE_EFFECT) target.ExtinguishMob() use_power = ACTIVE_POWER_USE /obj/machinery/stasis/proc/thaw_them(mob/living/target) - target.remove_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) + target.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_MACHINE_EFFECT) if(target == occupant) use_power = IDLE_POWER_USE 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 c6c91e5b9a44..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) 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.dm b/code/game/objects/effects/anomalies/_anomalies.dm index 3c8340bb284b..e62b1e52f7b3 100644 --- a/code/game/objects/effects/anomalies/_anomalies.dm +++ b/code/game/objects/effects/anomalies/_anomalies.dm @@ -50,7 +50,7 @@ aSignal = new aSignal(src) aSignal.code = rand(1,100) aSignal.anomaly_type = type - aSignal.research = rand(500,4000) + aSignal.research = research_value var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ) if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven! 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..e8d1aca60520 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -60,6 +60,11 @@ poster_type = /obj/structure/sign/poster/minutemen/random icon_state = "rolled_legit" +/obj/item/poster/random_rilena + name = "random rilena poster" + poster_type = /obj/structure/sign/poster/rilena/random + icon_state = "rolled_rilena" + // The poster sign/structure /obj/structure/sign/poster @@ -92,7 +97,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 @@ -958,13 +963,13 @@ icon_state = "poster-cmm_enlist" /obj/structure/sign/poster/minutemen/bard - name = "CMM BARD" - desc = "A poster that was made by soldiers that attemps to recruit people in the BARD depecting a \"Sargent Clues\" mowing down waves and waves of xenofauna, and them exploding into blood. Somethinng tells you that service is a lot less intresting than this." + name = "CMM-BARD" + desc = "A poster made by soldiers to recruit people into the BARD, depecting a \"Sergeant Clues\" mowing down waves and waves of xenofauna, and them exploding into blood. Something tells you that service is a lot less interesting than this." icon_state = "poster-cmm_bard" /obj/structure/sign/poster/minutemen/gold - name = "CMM GOLD" - desc = "A poster listing job positions open in CMM GOLD and asking for applications, listing important but unintresting benifits like health insurance and such." + name = "CMM-GOLD" + desc = "A poster listing job positions open in the CMM GOLD and asking for applications, listing important but uninteresting benifits like health insurance and such." icon_state = "poster-cmm_gold" /obj/structure/sign/poster/minutemen/lunatown @@ -1015,6 +1020,51 @@ /obj/structure/sign/poster/contraband/d_day_promo, ) +//RILENA poster pool. There are only five of these, so try not to go overboard with the random posters, okay? Expect not to see these mapped onto ships except in rolled up form, since they're supposed to be bought in the RILENA merch crate. + +/obj/structure/sign/poster/rilena + poster_item_name = "rilena poster" + poster_item_desc = "A poster with a vibrant purple backing, indicating it is for the popular webseries RILENA: LMR. It comes with adhesive backing, for easy pinning to any vertical surface." + poster_item_icon_state = "rolled_rilena" + +/obj/structure/sign/poster/rilena/Initialize(mapload, obj/structure/sign/poster/new_poster_structure) + . = ..() + AddComponent(/datum/component/art/rilena, GOOD_ART) + +/obj/structure/sign/poster/rilena/random + name = "random rilena poster" + icon_state = "random_rilena" + never_random = TRUE + random_basetype = /obj/structure/sign/poster/rilena + random_type = POSTER_SUBTYPES + +/obj/structure/sign/poster/rilena/rilena + name = "RILENA" + desc = "A RILENA: LMR poster featuring two of the more fan favorite characters, Ri and T4L1." + icon_state = "poster-rilena_rilena" + +/obj/structure/sign/poster/rilena/ri + name = "Ri" + desc = "A RILENA: LMR poster featuring Ri on her own." + icon_state = "poster-rilena_ri" + +/obj/structure/sign/poster/rilena/tali + name = "T4L1" + desc = "A RILENA: LMR poster featuring a fan favorite miniboss, T4L1." + icon_state = "poster-rilena_tali" + +/obj/structure/sign/poster/rilena/run + name = "Lenelasa Me Refi" + desc = "A RILENA: LMR poster featuring Ri running, a core mechanic of the series." + icon_state = "poster-rilena_run" + +/obj/structure/sign/poster/rilena/timeline + name = "Timeline" + desc = "A RILENA: LMR poster split in two to represent the series' disregard for conventional timeline aspects." + icon_state = "poster-rilena_timeline" + + + #undef PLACE_SPEED #undef POSTER_SUBTYPES #undef POSTER_LIST 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/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/landmarks.dm b/code/game/objects/effects/landmarks.dm index 63ff9b794ce4..c8332e1dd0cd 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -219,10 +219,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) name = "Brig Physician" icon_state = "Brig Physician" -/obj/effect/landmark/start/lieutenant - name = "SolGov Representative" //WS Edit - SolGov Rep - icon_state = "SolGov Representative" //WS Edit - SolGov Rep - //Department Security spawns /obj/effect/landmark/start/depsec @@ -344,7 +340,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) return INITIALIZE_HINT_QDEL /obj/effect/landmark/ert_spawn - name = "Emergencyresponseteam" + name = "Emergency response team spawn" icon_state = "ert_spawn" /obj/effect/landmark/ert_spawn/Initialize(mapload) @@ -352,6 +348,23 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) GLOB.emergencyresponseteamspawn += loc return INITIALIZE_HINT_QDEL +/obj/effect/landmark/ert_outpost_spawn + name = "Emergency response team outpost spawn" + icon_state = "ert_spawn" + +/obj/effect/landmark/ert_outpost_spawn/Initialize(mapload) + ..() + GLOB.emergencyresponseteam_outpostspawn += loc + return INITIALIZE_HINT_QDEL + +/obj/effect/landmark/ert_shuttle_spawn + name = "Emergency response team shuttle spawn" + icon_state = "ert_spawn" + +/obj/effect/landmark/ert_shuttle_brief_spawn + name = "Emergency response team briefing officer spawn" + icon_state = "ert_brief_spawn" + //ninja energy nets teleport victims here /obj/effect/landmark/holding_facility name = "Holding Facility" 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/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 1e349fd17abb..d1f47ff647f6 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -105,7 +105,6 @@ /obj/item/paper/fluff/jobs/prisoner/letter = 1, /obj/item/grenade/smokebomb = 1, /obj/item/flashlight/seclite = 1, - /obj/item/tailclub = 1, //want to buy makeshift wooden club sprite /obj/item/kitchen/knife/shiv = 4, /obj/item/kitchen/knife/shiv/carrot = 1, /obj/item/kitchen/knife = 1, @@ -565,29 +564,11 @@ /obj/item/stack/sheet/mineral/wood/fifty, /obj/item/stack/sheet/mineral/diamond/twenty, /obj/item/stack/sheet/mineral/gold/fifty, - /obj/item/stack/sheet/mineral/adamantine/ten, + /obj/item/stack/cable_coil/red, /obj/item/stack/rods/fifty ) -/obj/effect/spawner/lootdrop/spacegym - name = "spacegym loot spawner" - lootdoubles = FALSE - - loot = list( - /obj/item/dnainjector/hulkmut = 1, - /obj/item/dnainjector/dwarf = 1, - /obj/item/dnainjector/gigantism = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet/chicken = 1, - /obj/item/clothing/under/shorts/black = 1, - /obj/item/clothing/under/shorts/blue = 1, - /obj/item/clothing/under/shorts/red = 1, - /obj/item/restraints/handcuffs = 1, - /obj/item/storage/pill_bottle/stimulant = 1, - /obj/item/storage/firstaid/regular = 1, - /obj/item/storage/box/handcuffs = 1, - ) - /obj/effect/spawner/lootdrop/singularitygen name = "Tesla or Singulo spawner" lootdoubles = FALSE @@ -645,7 +626,6 @@ /obj/item/stack/sheet/mineral/wood/fifty, /obj/item/stack/sheet/mineral/diamond/twenty, /obj/item/stack/sheet/mineral/gold/fifty, - /obj/item/stack/sheet/mineral/adamantine/ten, /obj/item/stack/cable_coil/red, /obj/item/stack/rods/fifty ) @@ -1250,6 +1230,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/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm index 99eac4828932..1eb4fd0dda94 100644 --- a/code/game/objects/effects/spawners/xeno_egg_delivery.dm +++ b/code/game/objects/effects/spawners/xeno_egg_delivery.dm @@ -15,4 +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)) + 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/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 44857142e4db..8800dee20016 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -342,10 +342,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM smoke_all = TRUE list_reagents = list(/datum/reagent/drug/nicotine = 10, /datum/reagent/medicine/omnizine = 15) -/obj/item/clothing/mask/cigarette/shadyjims - desc = "A Shady Jim's Super Slims cigarette." - list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/toxin/lipolicide = 4, /datum/reagent/ammonia = 2, /datum/reagent/toxin/plantbgone = 1, /datum/reagent/toxin = 1.5) - /obj/item/clothing/mask/cigarette/xeno desc = "A Xeno Filtered brand cigarette." list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4) diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 7e7bd499a19b..faa366f893b0 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -802,13 +802,6 @@ /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/glass = 4) -/obj/item/circuitboard/machine/fat_sucker - name = "Lipid Extractor (Machine Board)" - icon_state = "medical" - build_path = /obj/machinery/fat_sucker - req_components = list(/obj/item/stock_parts/micro_laser = 1, - /obj/item/kitchen/fork = 1) - /obj/item/circuitboard/machine/harvester name = "Harvester (Machine Board)" icon_state = "medical" @@ -1502,3 +1495,23 @@ /obj/item/stock_parts/cell = 3, /obj/item/stock_parts/capacitor = 2 ) + +/obj/item/circuitboard/machine/coffeemaker + name = "Modello 3 Coffeemaker" + build_path = /obj/machinery/coffeemaker + req_components = list( + /obj/item/stack/sheet/glass = 1, + /obj/item/reagent_containers/glass/beaker = 2, + /obj/item/stock_parts/capacitor = 1, + /obj/item/stock_parts/micro_laser = 2, + ) + +/obj/item/circuitboard/machine/coffeemaker/impressa + name = "Impressa Coffeemaker" + build_path = /obj/machinery/coffeemaker/impressa + req_components = list( + /obj/item/stack/sheet/glass = 1, + /obj/item/reagent_containers/glass/beaker = 2, + /obj/item/stock_parts/capacitor = 1, + /obj/item/stock_parts/micro_laser = 2, + ) 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..577cfb5a62d4 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 @@ -468,7 +468,7 @@ M.adjustStaminaLoss(60) M.Knockdown(75) M.Jitter(50) - M.apply_status_effect(STATUS_EFFECT_CONVULSING) + M.apply_status_effect(/datum/status_effect/convulsing) playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1) if(HAS_TRAIT(M,MOB_ORGANIC)) M.emote("gasp") diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 9dd00660d362..34fdcad9f16b 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -229,9 +229,9 @@ GLOBAL_LIST_EMPTY(PDAs) if(id) dat += text("ID: [id ? "[id.registered_name], [id.assignment]" : "----------"] [id ? "Update PDA Info" : ""]

") - dat += "[worldtime2text()]
" //:[world.time / 100 % 6][world.time / 100 % 10]" - dat += "[time2text(world.realtime, "MMM DD")] 504 FS" - dat += "

" + dat += "[station_time_timestamp()]
" + dat += "[sector_datestamp()]
" + dat += "
" dat += "

General Functions

" dat += "
    " dat += "
  • [PDAIMG(notes)] Notekeeper
  • " @@ -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..37613679e628 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" @@ -239,8 +239,3 @@ name = "brig physician PDA" default_cartridge = /obj/item/cartridge/medical icon_state = "pda-brig_phys" - -/obj/item/pda/lieutenant - name = "lieutenant PDA" - default_cartridge = /obj/item/cartridge/hos - icon_state = "pda-h" 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/headset.dm b/code/game/objects/items/devices/radio/headset.dm index e37cd1859094..36b1090fd7e0 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -411,20 +411,6 @@ GLOBAL_LIST_INIT(channel_tokens, list( desc = "A headset allowing the wearer to communicate with medbay and service." icon_state = "med_headset" -/obj/item/radio/headset/heads/lieutenant - name = "lieutenant's headset" - desc = "A lieutenant's headset." - icon_state = "com_headset" - -/obj/item/radio/headset/heads/lieutenant/alt - name = "lieutenant's bowman headset" - desc = "A lieutenant's headset. Protects ears from flashbangs." - icon_state = "com_headset_alt" - -/obj/item/radio/headset/heads/lieutenant/alt/ComponentInitialize() - . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) - /obj/item/radio/headset/heads/rd name = "\proper the research director's headset" desc = "Headset of the fellow who keeps society marching towards technological singularity." 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..eb7422257d24 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -217,7 +217,7 @@ desc = "Use this to keep prisoners in line." gender = PLURAL icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "handcuff" + icon_state = "legcuff" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' flags_1 = CONDUCT_1 @@ -235,12 +235,23 @@ var/armed = 0 var/trap_damage = 20 +/obj/item/restraints/legcuffs/beartrap/goliath + name = "tentacle mass" + desc = "Ew." + icon_state = "goliathtrap" + flags_1 = NONE + slowdown = 10 + breakouttime = 5 SECONDS + item_flags = DROPDEL + armed = 1 + trap_damage = 0 + /obj/item/restraints/legcuffs/beartrap/Initialize() . = ..() 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) @@ -294,8 +305,8 @@ snap = FALSE if(snap) close_trap() - L.visible_message("[L] triggers \the [src].", \ - "You trigger \the [src]!") + L.visible_message("[L] gets caught by \the [src]!", \ + "You get caught by \the [src]!") L.apply_damage(trap_damage, BRUTE, def_zone) /obj/item/restraints/legcuffs/beartrap/energy @@ -309,7 +320,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)) @@ -393,18 +404,18 @@ item_state = "bola_r" breakouttime = 300 slowdown = 0 - var/datum/status_effect/gonbolaPacify/effectReference + var/datum/status_effect/gonbola_pacify/effect_reference /obj/item/restraints/legcuffs/bola/gonbola/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) . = ..() if(iscarbon(hit_atom)) var/mob/living/carbon/C = hit_atom - effectReference = C.apply_status_effect(STATUS_EFFECT_GONBOLAPACIFY) + effect_reference = C.apply_status_effect(/datum/status_effect/gonbola_pacify) /obj/item/restraints/legcuffs/bola/gonbola/dropped(mob/user) . = ..() - if(effectReference) - QDEL_NULL(effectReference) + if(effect_reference) + QDEL_NULL(effect_reference) /obj/item/restraints/legcuffs/bola/watcher //tribal bola for tribal lizards name = "watcher Bola" diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index a1612fd7c4dd..3ffcca22bf11 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 @@ -521,9 +521,9 @@ /obj/item/nullrod/scythe/talking/necro/attack(mob/living/target) ..() - var/datum/status_effect/stacking/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED) + var/datum/status_effect/stacking/saw_bleed/B = target.has_status_effect(/datum/status_effect/stacking/saw_bleed) if(!B) - target.apply_status_effect(STATUS_EFFECT_SAWBLEED,bleed_stacks_per_hit) + target.apply_status_effect(/datum/status_effect/stacking/saw_bleed,bleed_stacks_per_hit) else B.add_stacks(bleed_stacks_per_hit) 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..8247d02cb549 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() @@ -158,23 +158,6 @@ if(auto_inject && ready && ready_implants > 0) implant(user,null) -/obj/machinery/implantchair/genepurge - name = "Genetic purifier" - desc = "Used to purge a human genome of foreign influences." - special = TRUE - special_name = "Purge genome" - injection_cooldown = 0 - replenish_cooldown = 300 - -/obj/machinery/implantchair/genepurge/implant_action(mob/living/carbon/human/H,mob/user) - if(!istype(H)) - return 0 - H.set_species(/datum/species/human, 1)//lizards go home - H.purrbation_remove()//remove cats - H.dna.remove_all_mutations()//hulks out - return 1 - - /obj/machinery/implantchair/brainwash name = "Neural Imprinter" desc = "Used to indoctrinate rehabilitate hardened recidivists." 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/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 153c3a75564d..faf1e6d92995 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -763,12 +763,12 @@ /obj/item/storage/belt/weebstick/afterattack(atom/A, mob/living/user, proximity_flag, params) . = ..() if(primed && length(contents)) + if(!(A in view(user.client.view, user))) + return var/obj/item/I = contents[1] if(!user.put_in_inactive_hand(I)) to_chat(user, "You need a free hand!") return - if(!(A in view(user.client.view, user))) - return var/datum/component/storage/CP = GetComponent(/datum/component/storage) CP.locked = FALSE primed = FALSE 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/plushes.dm b/code/game/objects/items/plushes.dm index e2461af4175a..a6ef402ecad4 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -653,7 +653,7 @@ /obj/item/toy/plush/moth/punished name = "punished moth plushie" - desc = "An adorable mothperson plushy. It's a sad bug... that's quite sad actualy." + desc = "An adorable mothperson plushy. It's a sad bug... that's quite sad actually." icon_state = "moffplush_punished" /obj/item/toy/plush/moth/firewatch @@ -772,6 +772,46 @@ lefthand_file = 'icons/mob/inhands/misc/plushes_lefthand.dmi' //todo: sort the god damn plushie inhands righthand_file = 'icons/mob/inhands/misc/plushes_righthand.dmi' +/obj/item/toy/plush/rilena + name = "Ri plushie" + desc = "A plush of the protagonist of the popular combination video game series and webcomic RILENA."// Makes the iconic hurt sound from the game!" //sadly does not :pensive: + icon_state = "rilenaplush_ri" + attack_verb = list("blasted", "shot", "shmupped") + //squeak_override = list('sound/voice/ //kepori lack a voice :( + gender = FEMALE + +/obj/item/toy/plush/tali + name = "T4L1 plushie" + desc = "A surprisingly soft plushie of a recurring miniboss from the popular combination video game series and webcomic RILENA. The cannon arm does not function." + icon_state = "rilenaplush_t4l1" + attack_verb = list("blasted", "shot", "cannoned") + gender = FEMALE + +/obj/item/toy/plush/sharai + name = "Sharai plushie" + desc = "A plushie of the four winged kepori boss from the popular combination video game series and webcomic RILENA." + icon_state = "rilenaplush_sharai" + attack_verb = list("blasted", "shot", "radial bursted") + gender = FEMALE + +/obj/item/toy/plush/xader + name = "Xader plushie" + desc = "A plushie of the recurring transdimensional transgender shopkeep from the popular webseries RILENA." + icon_state = "rilenaplush_xader" + gender = FEMALE + +/obj/item/toy/plush/mora + name = "Mora plushie" + desc = "A plushie of Mora from the popular webseries RILENA." + icon_state = "rilenaplush_mora" + gender = FEMALE + +/obj/item/toy/plush/kari + name = "knockoff RILENA plushie" + desc = "A plushie of a FBP Kepori. The tag calls it 'Kari' and claims it to be from 'RAYALA: RUNNING FROM EVIL'. The cannon arm does not function." + icon_state = "fbplush" + gender = FEMALE + /obj/item/toy/plush/among name = "amoung pequeño" desc = "A little pill shaped guy, with a price tag of 3€." 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..1296e889181d 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) @@ -322,7 +322,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( var/hit_hand = ((user.active_hand_index % 2 == 0) ? "r_" : "l_") + "arm" if(ishuman(user)) var/mob/living/carbon/human/H = user - if(!H.gloves && !HAS_TRAIT(H, TRAIT_PIERCEIMMUNE)) // golems, etc + if(!H.gloves && !HAS_TRAIT(H, TRAIT_PIERCEIMMUNE)) to_chat(H, "[src] cuts into your hand!") H.apply_damage(force*0.5, BRUTE, hit_hand) else if(ismonkey(user)) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 04a9898c523d..200fc408768f 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -465,11 +465,6 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \ * Adamantine */ - -GLOBAL_LIST_INIT(adamantine_recipes, list( - new /datum/stack_recipe("incomplete servant golem shell", /obj/item/golem_shell/servant, req_amount=1, res_amount=1), - )) - /obj/item/stack/sheet/mineral/adamantine name = "adamantine" icon_state = "sheet-adamantine" @@ -479,10 +474,6 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( merge_type = /obj/item/stack/sheet/mineral/adamantine grind_results = list(/datum/reagent/liquidadamantine = 10) -/obj/item/stack/sheet/mineral/adamantine/get_main_recipes() - . = ..() - . += GLOB.adamantine_recipes - /obj/item/stack/sheet/mineral/adamantine/ten amount = 10 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 2a9e5c38a9d5..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 diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 0811e39fbe67..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) @@ -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 4d44a749146c..b4ec267bd770 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)) @@ -336,7 +336,6 @@ /obj/item/reagent_containers/food/drinks/bottle/absinthe, /obj/item/clothing/under/syndicate/tacticool, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, - /obj/item/storage/fancy/cigarettes/cigpack_shadyjims, /obj/item/clothing/mask/gas/syndicate, /obj/item/clothing/neck/necklace/dope, /obj/item/vending_refill/donksoft) 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/belt.dm b/code/game/objects/items/storage/belt.dm index 05b02e77f8b1..fba5fd1b4fc7 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -303,6 +303,11 @@ var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 6 +/obj/item/storage/belt/security/webbing/bulldog/PopulateContents() + . = ..() + for(var/i in 1 to 3) + new /obj/item/ammo_box/magazine/m12g(src) + /obj/item/storage/belt/mining name = "explorer's webbing" desc = "A versatile chest rig, cherished by miners and hunters alike." @@ -434,22 +439,40 @@ var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_w_class = WEIGHT_CLASS_SMALL +/obj/item/storage/belt/military/c20r/PopulateContents() + . = ..() + for(var/i in 1 to 4) + new /obj/item/ammo_box/magazine/smgm45(src) + +/obj/item/storage/belt/military/assault/m90/PopulateContents() + . = ..() + for(var/i in 1 to 4) + new /obj/item/ammo_box/magazine/m556(src) + /obj/item/storage/belt/military/minutemen name = "minutemen tactical webbing" desc = "A set of tactical webbing worn by the Colonial Minutemen of the frontier." icon_state = "cmmwebbing" item_state = "cmmwebbing" -/obj/item/storage/belt/military/minutemen/loaded/PopulateContents() - for(var/i in 1 to 7) +/obj/item/storage/belt/military/minutemen/p16/PopulateContents() + for(var/i in 1 to 4) new /obj/item/ammo_box/magazine/p16(src) +/obj/item/storage/belt/military/minutemen/gal/PopulateContents() + for(var/i in 1 to 4) + new /obj/item/ammo_box/magazine/gal(src) + +/obj/item/storage/belt/military/minutemen/cm5/PopulateContents() + for(var/i in 1 to 4) + new /obj/item/ammo_box/magazine/smgm9mm(src) + /obj/item/storage/belt/military/snack name = "tactical snack rig" /obj/item/storage/belt/military/snack/Initialize() . = ..() - var/sponsor = pick("DonkCo", "Waffle Co.", "Roffle Co.", "Gorlax Marauders", "Tiger Cooperative") + var/sponsor = pick("Donk! Co.", "CyberSun") desc = "A set of snack-tical webbing worn by athletes of the [sponsor] VR sports division." /obj/item/storage/belt/military/snack/ComponentInitialize() @@ -826,6 +849,11 @@ item_state = "inteq_webbing" supports_variations = VOX_VARIATION +/obj/item/storage/belt/security/webbing/inteq/ak47/PopulateContents() + . = ..() + for(var/i in 1 to 7) + new /obj/item/ammo_box/magazine/ak47(src) + /obj/item/storage/belt/security/webbing/inteq/alt name = "inteq drop pouch harness" desc = "A harness with a bunch of pouches attached to them emblazoned in the colors of the IRMG, can hold security gear." diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 98fa24e97379..7b1710cd8960 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]") @@ -1542,3 +1542,54 @@ /obj/item/stack/wrapping_paper/small=1 ) generate_items_inside(items_inside,src) + +/obj/item/storage/box/coffeepack + icon_state = "arabica_beans" + name = "arabica beans" + desc = "A bag containing fresh, dry coffee arabica beans. Ethically sourced and packaged by Donk! Co." + illustration = null + icon = 'icons/obj/food/containers.dmi' + var/beantype = /obj/item/reagent_containers/food/snacks/grown/coffee + +/obj/item/storage/box/cofeepack/Initialize(mapload) + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 5 + STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/grown/coffee)) + +/obj/item/storage/box/coffeepack/PopulateContents() + var/static/items_inside = list( + /obj/item/reagent_containers/food/snacks/grown/coffee = 5, + /obj/item/reagent_containers/food/snacks/grown/coffee/robusta = 5) + generate_items_inside(items_inside,src) + +/obj/item/storage/box/coffeepack/robusta + icon_state = "robusta_beans" + name = "robusta beans" + desc = "A bag containing fresh, dry coffee robusta beans. Ethically sourced and packaged by Donk! Co." + beantype = /obj/item/reagent_containers/food/snacks/grown/coffee/robusta + + +/* + * Coffee condiments display -- someone can make this fancy eventually, i cant fucking figure it out for the life of me -- it exists in TG + */ + +/obj/item/storage/box/coffee_condi_display + name = "coffee condiments display" + desc = "A neat small box, holding all your favorite coffee condiments." + +/obj/item/storage/box/coffee_condi_display/Initialize(mapload) + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 14 + STR.set_holdable(list( + /obj/item/reagent_containers/food/condiment/pack/sugar, + /obj/item/reagent_containers/food/condiment/pack/creamer, + /obj/item/reagent_containers/food/condiment/pack/astrotame, + )) + +/obj/item/storage/box/coffee_condi_display/PopulateContents() + for(var/i in 1 to 4) + new /obj/item/reagent_containers/food/condiment/pack/sugar(src) + new /obj/item/reagent_containers/food/condiment/pack/creamer(src) + new /obj/item/reagent_containers/food/condiment/pack/astrotame(src) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 58f10b2ccd8d..41f214998ffd 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -306,13 +306,6 @@ if(prob(7)) spawn_type = /obj/item/clothing/mask/cigarette/candy/nicotine //uh oh! -/obj/item/storage/fancy/cigarettes/cigpack_shadyjims - name = "\improper Shady Jim's Super Slims packet" - desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!" - icon_state = "shadyjim" - base_icon_state = "shadyjim" - spawn_type = /obj/item/clothing/mask/cigarette/shadyjims - /obj/item/storage/fancy/cigarettes/cigpack_xeno name = "\improper Xeno Filtered packet" desc = "Loaded with 100% pure slime. And also nicotine." diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index dc9aea782406..4505f596907f 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -176,14 +176,10 @@ /obj/item/storage/firstaid/radiation name = "radiation treatment kit" desc = "Used to treat severe radiation poisoning." - icon_state = "antitoxin" - item_state = "firstaid-toxin" + icon_state = "radiation" + item_state = "firstaid-ointment" //its yellow damagetype_healed = TOX -/obj/item/storage/firstaid/radiation/Initialize(mapload) - . = ..() - icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2") - /obj/item/storage/firstaid/radiation/PopulateContents() if(empty) return 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 1708b0265793..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 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/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 235e267e43c3..e2dfc9a81dc3 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -65,11 +65,6 @@ user.visible_message("[user] cuts [C]'s restraints with [src]!") qdel(C.handcuffed) return - else if(istype(C) && C.has_status_effect(STATUS_EFFECT_CHOKINGSTRAND)) - to_chat(C, "You attempt to remove the durathread strand from around your neck.") - if(do_after(user, 15, null, C)) - to_chat(C, "You succesfuly remove the durathread strand.") - C.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND) else ..() 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..211c03d1d98a 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.") @@ -1370,6 +1370,18 @@ icon_state = "vanguard" toysay = "I'm too old for this shit." +/obj/item/toy/figure/tali + name = "T4L1 action figure" + desc = "An action figure modeled after a recurring miniboss from the popular combination webcomic and video game RILENA. Unfortunately, the gun arm does not function." + icon_state = "tali" + toysay = "I'll take you down this time!" + +/obj/item/toy/figure/kari + name = "knockoff RILENA action figure" + desc = "An action figure that seems to be labeled as 'Kari' from RAYALA: RUNNING FROM EVIL. Unfortunately, the gun arm does not function." + icon_state = "kari" + toysay = "I will defeat you for good!" + /obj/item/toy/dummy name = "ventriloquist dummy" desc = "It's a dummy, dummy." @@ -1425,7 +1437,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 +1452,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..c019471e3cdd 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" @@ -523,29 +523,6 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 icon_state = "hippocratic" impressiveness = 50 -/obj/item/tailclub - name = "tail club" - desc = "For the beating to death of lizards with their own tails." - icon_state = "tailclub" - force = 14 - throwforce = 1 // why are you throwing a club do you even weapon - throw_speed = 1 - throw_range = 1 - attack_verb = list("clubbed", "bludgeoned") - -/obj/item/melee/chainofcommand/tailwhip - name = "liz o' nine tails" - desc = "A whip fashioned from the severed tails of lizards." - icon_state = "tailwhip" - item_state = "tailwhip" - item_flags = NONE - -/obj/item/melee/chainofcommand/tailwhip/kitty - name = "cat o' nine tails" - desc = "A whip fashioned from the severed tails of cats." - icon_state = "catwhip" - item_state = "catwhip" - /obj/item/melee/skateboard name = "improvised skateboard" desc = "A skateboard. It can be placed on its wheels and ridden, or used as a strong weapon." @@ -760,8 +737,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/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 7badc7a3795b..3c84cea0de27 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 @@ -447,20 +447,10 @@ /obj/structure/chair/plastic/post_buckle_mob(mob/living/Mob) Mob.pixel_y += 2 .=..() - if(iscarbon(Mob)) - INVOKE_ASYNC(src, .proc/snap_check, Mob) /obj/structure/chair/plastic/post_unbuckle_mob(mob/living/Mob) Mob.pixel_y -= 2 -/obj/structure/chair/plastic/proc/snap_check(mob/living/carbon/Mob) - if (Mob.nutrition >= NUTRITION_LEVEL_FAT) - to_chat(Mob, "The chair begins to pop and crack, you're too heavy!") - if(do_after(Mob, 60, 1, Mob, 0)) - Mob.visible_message("The plastic chair snaps under [Mob]'s weight!") - new /obj/effect/decal/cleanable/plastic(loc) - qdel(src) - /obj/item/chair/plastic name = "folding plastic chair" desc = "Somehow, you can always find one under the wrestling ring." 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/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index bc1155ec34aa..35b7663ca05e 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -134,13 +134,6 @@ LINEN BINS item_state = "sheetrd" dream_messages = list("authority", "a silvery ID", "a bomb", "a mech", "a facehugger", "maniacal laughter", "the research director") -// for Free Golems. -/obj/item/bedsheet/rd/royal_cape - name = "Royal Cape of the Liberator" - desc = "Majestic." - dream_messages = list("mining", "stone", "a golem", "freedom", "doing whatever") - custom_price = 500 - /obj/item/bedsheet/medical name = "medical blanket" desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present within a 10 LY radius*." 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/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..66b803e7d041 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) @@ -378,43 +378,3 @@ new /obj/item/clothing/suit/toggle/labcoat/brig_phys(src) new /obj/item/clothing/suit/armor/vest/security/brig_phys(src) new /obj/item/clothing/head/beret/sec/brig_phys(src) - -/obj/structure/closet/secure_closet/lieutenant - name = "SolGov official's locker" - req_access = list(ACCESS_SOLGOV) - icon_state = "solgov" - -/obj/structure/closet/secure_closet/lieutenant/PopulateContents() - ..() - new /obj/item/clothing/head/beret/solgov(src) - new /obj/item/storage/briefcase(src) - new /obj/item/storage/firstaid/regular(src) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/clothing/suit/armor/vest/bulletproof/solgov(src) - new /obj/item/clothing/suit/armor/solgov_trenchcoat(src) - new /obj/item/clothing/accessory/waistcoat/solgov(src) - new /obj/item/clothing/shoes/laceup(src) - -/obj/structure/closet/secure_closet/true_lieutenant - name = "\proper lieutenant's locker" - req_access = list(ACCESS_HEADS) - icon_state = "blueshield" - -/obj/structure/closet/secure_closet/true_lieutenant/PopulateContents() - ..() - new /obj/item/clothing/head/beret/lt(src) - new /obj/item/storage/briefcase(src) - new /obj/item/storage/firstaid/regular(src) - new /obj/item/storage/belt/security/full(src) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/clothing/suit/armor/vest/lieutenant(src) - new /obj/item/clothing/suit/toggle/lieutenant(src) - new /obj/item/clothing/suit/armor/lieutenant_trenchcoat(src) - new /obj/item/clothing/accessory/holster/lieutenant(src) - 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) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index bc0d92a3d207..3729f41af36e 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -10,6 +10,7 @@ allow_dense = TRUE dense_when_open = TRUE climbable = TRUE + mouse_drag_pointer = TRUE climb_time = 10 //real fast, because let's be honest stepping into or onto a crate is easy delivery_icon = "deliverycrate" open_sound = 'sound/machines/crate_open.ogg' @@ -45,11 +46,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) . = ..() 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..3b1387f5490b --- /dev/null +++ b/code/game/objects/structures/crateshelf.dm @@ -0,0 +1,145 @@ +#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/debug + 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)) + if(i >= 3) // If we're at or above three, we'll be on the way to going off the tile we're on. This allows mobs to be below the shelf when this happens. + stack_layer = ABOVE_MOB_LAYER + (0.02 * i) - 0.01 + else + 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) + . = ..() + . += span_notice("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. + . += span_notice("You could drag and drop a crate into [src].") + if(contents.len) // If there are any crates in the shelf, let the examiner know. + . += span_notice("You could drag and drop a crate out of [src].") + . += span_notice("[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, span_notice("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(span_warning("[crate] falls off of [src]!"), + span_notice("You manage to knock [crate] free of [src]"), + span_notice("You hear a thud.")) + crate.forceMove(drop_location()) // Drop the crate onto the shelf, + step_rand(crate, 1) // Then try to push it somewhere. + crate.layer = initial(crate.layer) // Reset the crate back to having the default layer, otherwise we might get strange interactions. + crate.pixel_y = initial(crate.pixel_y) // Reset the crate back to having no offset, otherwise it will be floating. + shelf_contents[shelf_contents.Find(crate)] = null // Remove the reference to the crate from the list. + handle_visuals() + +/obj/structure/crate_shelf/proc/handle_visuals() + vis_contents = contents // It really do be that shrimple. + return + +/obj/structure/crate_shelf/proc/load(obj/structure/closet/crate/crate, mob/user) + var/next_free = shelf_contents.Find(null) // Find the first empty slot in the shelf. + if(!next_free) // If we don't find an empty slot, return early. + balloon_alert(user, "shelf full!") + return FALSE + if(do_after(user, use_delay, target = crate)) + if(shelf_contents[next_free] != null) + return FALSE // Something has been added to the shelf while we were waiting, abort! + if(crate.opened) // If the crate is open, try to close it. + if(!crate.close()) + return FALSE // If we fail to close it, don't load it into the shelf. + shelf_contents[next_free] = crate // Insert a reference to the crate into the free slot. + crate.forceMove(src) // Insert the crate into the shelf. + crate.pixel_y = DEFAULT_SHELF_VERTICAL_OFFSET * (next_free - 1) // Adjust the vertical offset of the crate to look like it's on the shelf. + if(next_free >= 3) // If we're at or above three, we'll be on the way to going off the tile we're on. This allows mobs to be below the crate when this happens. + crate.layer = ABOVE_MOB_LAYER + 0.02 * (next_free - 1) + else + crate.layer = BELOW_OBJ_LAYER + 0.02 * (next_free - 1) // Adjust the layer of the crate to look like it's in the shelf. + handle_visuals() + return TRUE + return FALSE // If the do_after() is interrupted, return FALSE! + +/obj/structure/crate_shelf/proc/unload(obj/structure/closet/crate/crate, mob/user, turf/unload_turf) + if(!unload_turf) + unload_turf = get_turf(user) // If a turf somehow isn't passed into the proc, put it at the user's feet. + if(!unload_turf.Enter(crate, no_side_effects = TRUE)) // If moving the crate from the shelf to the desired turf would bump, don't do it! Thanks Kapu1178 for the help here. - Generic DM + unload_turf.balloon_alert(user, "no room!") + return FALSE + if(do_after(user, use_delay, target = crate)) + if(!shelf_contents.Find(crate)) + return FALSE // If something has happened to the crate while we were waiting, abort! + crate.layer = initial(crate.layer) // Reset the crate back to having the default layer, otherwise we might get strange interactions. + crate.pixel_y = initial(crate.pixel_y) // Reset the crate back to having no offset, otherwise it will be floating. + crate.forceMove(unload_turf) + shelf_contents[shelf_contents.Find(crate)] = null // We do this instead of removing it from the list to preserve the order of the shelf. + handle_visuals() + return TRUE + return FALSE // If the do_after() is interrupted, return FALSE! + +/obj/structure/crate_shelf/deconstruct(disassembled = TRUE) + var/turf/dump_turf = drop_location() + for(var/obj/structure/closet/crate/crate in shelf_contents) + crate.layer = initial(crate.layer) // Reset the crates back to default visual state + crate.pixel_y = initial(crate.pixel_y) + crate.forceMove(dump_turf) + step(crate, pick(GLOB.alldirs)) // Shuffle the crates around as though they've fallen down. + crate.SpinAnimation(rand(4,7), 1) // Spin the crates around a little as they fall. Randomness is applied so it doesn't look weird. + switch(pick(1, 1, 1, 1, 2, 2, 3)) // Randomly pick whether to do nothing, open the crate, or break it open. + if(1) // Believe it or not, this does nothing. + if(2) // Open the crate! + if(crate.open()) // Break some open, cause a little chaos. + crate.visible_message(span_warning("[crate]'s lid falls open!")) + else // If we somehow fail to open the crate, just break it instead! + crate.visible_message(span_warning("[crate] falls apart!")) + crate.deconstruct() + if(3) // Break that crate! + crate.visible_message(span_warning("[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/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index b56c8daf4a57..56d0f0f2526f 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -166,102 +166,6 @@ if(4) to_chat(new_spawn, "You wished for immortality, even as your friends lay dying behind you. No matter how many times you cast yourself into the lava, you awaken in this room again within a few days. There is no escape.") -//Golem shells: Spawns in Free Golem ships in lavaland. Ghosts become mineral golems and are advised to spread personal freedom. -/obj/effect/mob_spawn/human/golem - name = "inert free golem shell" - desc = "A humanoid shape, empty, lifeless, and full of potential." - mob_name = "a free golem" - icon = 'icons/obj/wizard.dmi' - icon_state = "construct" - mob_species = /datum/species/golem - roundstart = FALSE - death = FALSE - anchored = FALSE - move_resist = MOVE_FORCE_NORMAL - density = FALSE - var/has_owner = FALSE - var/can_transfer = TRUE //if golems can switch bodies to this new shell - var/mob/living/owner = null //golem's owner if it has one - short_desc = "You are a Free Golem. Your family worships The Liberator." - flavour_text = "In his infinite and divine wisdom, he set your clan free to \ - travel the stars with a single declaration: \"Yeah go do whatever.\" Though you are bound to the one who created you, it is customary in your society to repeat those same words to newborn \ - golems, so that no golem may ever be forced to serve again." - -/obj/effect/mob_spawn/human/golem/Initialize(mapload, datum/species/golem/species = null, mob/creator = null) - if(species) //spawners list uses object name to register so this goes before ..() - name += " ([initial(species.prefix)])" - mob_species = species - . = ..() - var/area/A = get_area(src) - if(!mapload && A) - notify_ghosts("\A [initial(species.prefix)] golem shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_GOLEM) - if(has_owner && creator) - short_desc = "You are a golem." - flavour_text = "You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools." - important_info = "Serve [creator], and assist [creator.p_them()] in completing [creator.p_their()] goals at any cost." - owner = creator - -/obj/effect/mob_spawn/human/golem/special(mob/living/new_spawn, name) - var/datum/species/golem/X = mob_species - to_chat(new_spawn, "[initial(X.info_text)]") - if(!owner) - to_chat(new_spawn, "Build golem shells in the autolathe, and feed refined mineral sheets to the shells to bring them to life! You are generally a peaceful group unless provoked.") - else - new_spawn.mind.store_memory("Serve [owner.real_name], your creator.") - new_spawn.mind.enslave_mind_to_creator(owner) - log_game("[key_name(new_spawn)] possessed a golem shell enslaved to [key_name(owner)].") - log_admin("[key_name(new_spawn)] possessed a golem shell enslaved to [key_name(owner)].") - if(ishuman(new_spawn)) - var/mob/living/carbon/human/H = new_spawn - if(has_owner) - var/datum/species/golem/G = H.dna.species - G.owner = owner - H.set_cloned_appearance() - if(!name) - if(has_owner) - H.fully_replace_character_name(null, "[initial(X.prefix)] Golem ([rand(1,999)])") - else - H.fully_replace_character_name(null, H.dna.species.random_name()) - else - H.fully_replace_character_name(null, name) - if(has_owner) - new_spawn.mind.assigned_role = "Servant Golem" - else - new_spawn.mind.assigned_role = "Free Golem" - -/obj/effect/mob_spawn/human/golem/attack_hand(mob/user) - . = ..() - if(.) - return - if(isgolem(user) && can_transfer) - var/mob/living/carbon/human/H = user - var/transfer_choice = alert("Transfer your soul to [src]? (Warning, your old body will die!)",,"Yes","No") - if(transfer_choice != "Yes") - return - if(QDELETED(src) || uses <= 0) - return - log_game("[key_name(H)] golem-swapped into [src]") - H.visible_message("A faint light leaves [H], moving to [src] and animating it!","You leave your old body behind, and transfer into [src]!") - show_flavour = FALSE - var/mob/living/carbon/human/newgolem = create(newname = H.real_name) - H.transfer_trait_datums(newgolem) - H.mind.transfer_to(newgolem) - H.death() - return - -/obj/effect/mob_spawn/human/golem/servant - has_owner = TRUE - name = "inert servant golem shell" - mob_name = "a servant golem" - - -/obj/effect/mob_spawn/human/golem/adamantine - name = "dust-caked free golem shell" - desc = "A humanoid shape, empty, lifeless, and full of potential." - mob_name = "a free golem" - can_transfer = FALSE - mob_species = /datum/species/golem/adamantine - //Malfunctioning cryostasis sleepers: Spawns in makeshift shelters in lavaland. Ghosts become hermits with knowledge of how they got to where they are now. /obj/effect/mob_spawn/human/hermit name = "malfunctioning cryostasis sleeper" @@ -356,54 +260,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 +301,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 +331,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 @@ -736,57 +477,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/mirror.dm b/code/game/objects/structures/mirror.dm index 2e540611f343..c07dbe92f990 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -200,23 +200,23 @@ H.update_mutations_overlay() // no hulk lizard if("gender") - if(!(H.gender in list("male", "female"))) //blame the patriarchy + if(!(H.gender in list("male", "female"))) return if(H.gender == "male") - if(alert(H, "Become a Witch?", "Confirmation", "Yes", "No") == "Yes") + if(alert(H, "Become a Woman?", "Confirmation", "Yes", "No") == "Yes") if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return H.gender = "female" - to_chat(H, "Man, you feel like a woman!") + to_chat(H, "You trans your gender. You're now a woman.") else return else - if(alert(H, "Become a Warlock?", "Confirmation", "Yes", "No") == "Yes") + if(alert(H, "Become a Man?", "Confirmation", "Yes", "No") == "Yes") if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return H.gender = "male" - to_chat(H, "Whoa man, you feel like a man!") + to_chat(H, "You trans your gender. You're now a man.") else return H.dna.update_ui_block(DNA_GENDER_BLOCK) 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 a23b6860edef..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) 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 74c351e04118..d179a2930d2f 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -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 @@ -261,6 +261,13 @@ bullet_sizzle = TRUE bullet_bounce_sound = null +/turf/closed/indestructible/rock/schist + name = "schist" + desc = "Extremely densely-packed layers of schist. Say it ten times fast." + icon = 'icons/turf/walls/rockwall_icemoon.dmi' + icon_state = "rockwall_icemoon-0" + base_icon_state = "rockwall_icemoon" + /turf/closed/indestructible/paper name = "thick paper wall" desc = "A wall layered with impenetrable sheets of paper." diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index ebc3b5164505..321a5ce25e90 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) @@ -159,6 +161,7 @@ //Currently, Adamantine won't spawn as it has no uses. -Durandan var/mineralChance = 13 + /turf/closed/mineral/random/Initialize(mapload, inherited_virtual_z) mineralSpawnChanceList = typelist("mineralSpawnChanceList", mineralSpawnChanceList) @@ -575,7 +578,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 +641,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.dm b/code/game/turfs/open/floor.dm index b8931f740c4b..f4bfa034fa12 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -281,8 +281,6 @@ name = "floor" icon_state = "materialfloor" material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS - icon = 'icons/turf/floors/tiles.dmi' - icon_state = "tiled" /turf/open/floor/material/spawn_tile() for(var/i in custom_materials) 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/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/icemoon.dm b/code/game/turfs/open/floor/plating/icemoon.dm index 2b1892d5a4ed..ca1819af2531 100644 --- a/code/game/turfs/open/floor/plating/icemoon.dm +++ b/code/game/turfs/open/floor/plating/icemoon.dm @@ -105,6 +105,7 @@ /turf/open/floor/plating/asteroid/snow/temperatre initial_gas_mix = "o2=22;n2=82;TEMP=255.37" + baseturfs = /turf/open/floor/plating/asteroid/icerock/temperate /turf/open/floor/plating/asteroid/snow/atmosphere initial_gas_mix = FROZEN_ATMOS @@ -156,6 +157,9 @@ icon_state = "icemoon_ground_smooth" base_icon_state = "icemoon_ground_smooth" +/turf/open/floor/plating/asteroid/icerock/temperate + initial_gas_mix = "o2=22;n2=82;TEMP=255.37" + /turf/open/floor/plating/asteroid/iceberg gender = PLURAL name = "cracked ice floor" diff --git a/code/game/turfs/open/floor/plating/planet.dm b/code/game/turfs/open/floor/plating/planet.dm index d1577e516b6d..a86847ca8f78 100644 --- a/code/game/turfs/open/floor/plating/planet.dm +++ b/code/game/turfs/open/floor/plating/planet.dm @@ -59,6 +59,11 @@ if(prob(floor_variance)) icon_state = "[initial(icon_state)][rand(0,12)]" +/turf/open/floor/plating/dirt/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + baseturfs = /turf/open/floor/plating/dirt/icemoon + planetary_atmos = TRUE + /turf/open/floor/plating/grass/jungle name = "jungle grass" planetary_atmos = TRUE 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..a9881d19d977 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() @@ -310,14 +310,23 @@ GLOBAL_VAR(restart_counter) features += "AI allowed" hostedby = CONFIG_GET(string/hostedby) + var/discord_url + var/github_url + if(isnull(config)) + discord_url = "https://shiptest.net/discord" + github_url = "https://github.com/shiptest-ss13/Shiptest" + else + discord_url = CONFIG_GET(string/discordurl) + github_url = CONFIG_GET(string/githuburl) + s += "[station_name()]"; s += " (" - s += "" //Change this to wherever you want the hub to link to. + s += "" //Change this to wherever you want the hub to link to. s += "Discord" //Replace this with something else. Or ever better, delete it and uncomment the game version. s += "" s += ")" s += " (" - s += "" + s += "" s += "Github" s += "" s += ")" 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_verbs.dm b/code/modules/admin/admin_verbs.dm index 6f1809098f9d..929cf33f3315 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -26,8 +26,7 @@ GLOBAL_PROTECT(admin_verbs_default) /client/proc/resetasaycolor, /client/proc/fix_air, /*resets air in designated radius to its default atmos composition*/ /client/proc/addbunkerbypass, - /client/proc/revokebunkerbypass, - /client/proc/report_sgt //TEMP + /client/proc/revokebunkerbypass ) GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) GLOBAL_PROTECT(admin_verbs_admin) @@ -776,13 +775,3 @@ GLOBAL_PROTECT(admin_verbs_hideable) src << link("?debug=profile&type=sendmaps&window=test") #endif - -//FIXME TODO REMOVE THIS -/client/proc/report_sgt() - set name = "SGT Report" - set category = "000_PANIC BUTTON" - set desc = "Report a Slimegirl Trafficking Incident" - if(!holder) - return - log_shuttle("CRITICAL: !!INCIDENT REPORTED!!") - message_debug("[key_name_admin(usr)]: Shuttle Incident Reported.") diff --git a/code/modules/admin/chat_commands.dm b/code/modules/admin/chat_commands.dm index baa52e38c7da..eed57f6d6c0b 100644 --- a/code/modules/admin/chat_commands.dm +++ b/code/modules/admin/chat_commands.dm @@ -12,16 +12,24 @@ break if(!active_admins) SSticker.Reboot("Restart requested from the discord.", "discord") - return "Rebooting..." + return new /datum/tgs_message_content("Rebooting...") else - return "There are active admins on the server! Ask them to restart." + return new /datum/tgs_message_content("There are active admins on the server! Ask them to restart.") /datum/tgs_chat_command/join name = "join" help_text = "Sends a join link." /datum/tgs_chat_command/join/Run(datum/tgs_chat_user/sender, params) - return "<[world.internet_address]:[world.port]>" + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = "Join Server" + embed.colour = COLOR_DARK_CYAN + embed.description = "Enter this URL into the BYOND pager to join the server: byond://[world.internet_address]:[world.port]" + + var/datum/tgs_message_content/join = new() + join.embed = embed + + return join /datum/tgs_chat_command/tgsstatus name = "status" @@ -32,14 +40,64 @@ /datum/tgs_chat_command/tgsstatus/Run(datum/tgs_chat_user/sender, params) var/rtod = REALTIMEOFDAY if(rtod - last_tgs_status < TGS_STATUS_THROTTLE) - return + return new /datum/tgs_message_content("Please wait a few seconds before using this command again.") last_tgs_status = rtod - var/list/adm = get_admin_counts() - var/list/allmins = adm["total"] - var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). " - status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(0,1,0)]). Mode: [SSticker.mode ? SSticker.mode.name : "Not started"]." + + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = "Server Admin Status" + embed.colour = COLOR_DARK_CYAN + + embed.fields = list() + embed.fields += new /datum/tgs_chat_embed/field("Round", "[GLOB.round_id ? "Round #[GLOB.round_id]" : "Not started"]\n[station_name()]\n[length(SSovermap.controlled_ships)] ships") + embed.fields += new /datum/tgs_chat_embed/field("Admins", tgsadminwho()) + embed.fields += new /datum/tgs_chat_embed/field("Players", "Total: [length(GLOB.clients)]\nActive: [get_active_player_count(FALSE, TRUE, FALSE)]\nAlive: [get_active_player_count(TRUE, TRUE, TRUE)]") + + embed.fields += new /datum/tgs_chat_embed/field("Tickets", "Active: [length(GLOB.ahelp_tickets.active_tickets)]\nResolved: [length(GLOB.ahelp_tickets.resolved_tickets)]\nClosed: [length(GLOB.ahelp_tickets.closed_tickets)]") + embed.fields += new /datum/tgs_chat_embed/field("Interviews", "Open: [length(GLOB.interviews.open_interviews) - length(GLOB.interviews.interview_queue)]\nSubmitted: [length(GLOB.interviews.interview_queue)]\nClosed: [length(GLOB.interviews.closed_interviews)]") + + embed.fields += new /datum/tgs_chat_embed/field("Mode", "[SSticker.mode ? SSticker.mode.name : "Not started"]") + embed.fields += new /datum/tgs_chat_embed/field("Round Time", ROUND_TIME) + embed.fields += new /datum/tgs_chat_embed/field("Time Dilation", "[round(SStime_track.time_dilation_current, 0.1)]% ([round(SStime_track.time_dilation_avg, 0.1)]% avg)") + + for(var/datum/tgs_chat_embed/field/field as anything in embed.fields) + field.is_inline = TRUE + + var/datum/tgs_message_content/status = new() + status.embed = embed + return status +/datum/tgs_chat_command/subsystems + name = "subsystems" + help_text = "Gets the status of the server subsystems" + admin_only = TRUE + var/last_tgs_subsystems = 0 + +/datum/tgs_chat_command/subsystems/Run(datum/tgs_chat_user/sender, params) + var/rtod = REALTIMEOFDAY + if(rtod - last_tgs_subsystems < TGS_STATUS_THROTTLE) + return new /datum/tgs_message_content("Please wait a few seconds before using this command again.") + last_tgs_subsystems = rtod + + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = "Server Subsystems" + embed.colour = COLOR_DARK_CYAN + + embed.description = Master.stat_entry() + + embed.fields = list() + for(var/datum/controller/subsystem/sub_system as anything in Master.subsystems) + if(params && !findtext(sub_system.name, params)) + continue + var/datum/tgs_chat_embed/field/sub_system_entry = new ("\[[sub_system.state_letter()]] [sub_system.name]", sub_system.stat_entry()) + sub_system_entry.is_inline = TRUE + embed.fields += sub_system_entry + + var/datum/tgs_message_content/subsystems = new() + subsystems.embed = embed + + return subsystems + /datum/tgs_chat_command/tgscheck name = "check" help_text = "Gets the playercount, gamemode, and address of the server" @@ -48,10 +106,27 @@ /datum/tgs_chat_command/tgscheck/Run(datum/tgs_chat_user/sender, params) var/rtod = REALTIMEOFDAY if(rtod - last_tgs_check < TGS_STATUS_THROTTLE) - return + return new /datum/tgs_message_content("Please wait a few seconds before using this command again.") last_tgs_check = rtod - var/server = CONFIG_GET(string/server) - return "[GLOB.round_id ? "Round #[GLOB.round_id]: " : ""][GLOB.clients.len] players, Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [server ? server : "[world.internet_address]:[world.port]"]" + + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = "Server Status" + embed.colour = COLOR_DARK_CYAN + + embed.fields = list() + embed.fields += new /datum/tgs_chat_embed/field("Round", "[GLOB.round_id ? "Round #[GLOB.round_id]" : "Not started"]") + embed.fields += new /datum/tgs_chat_embed/field("Players", "[length(GLOB.player_list) || "No players"]") + embed.fields += new /datum/tgs_chat_embed/field("Admins", "[length(GLOB.admins) || "No admins"]") + embed.fields += new /datum/tgs_chat_embed/field("Round Time", ROUND_TIME) + embed.fields += new /datum/tgs_chat_embed/field("Time Dilation", "[round(SStime_track.time_dilation_current, 0.1)]% ([round(SStime_track.time_dilation_avg, 0.1)]% avg)") + + for(var/datum/tgs_chat_embed/field/field as anything in embed.fields) + field.is_inline = TRUE + + var/datum/tgs_message_content/status = new() + status.embed = embed + + return status /datum/tgs_chat_command/ahelp name = "ahelp" @@ -61,7 +136,7 @@ /datum/tgs_chat_command/ahelp/Run(datum/tgs_chat_user/sender, params) var/list/all_params = splittext(params, " ") if(all_params.len < 2) - return "Insufficient parameters" + return new /datum/tgs_message_content("Insufficient parameters") var/target = all_params[1] all_params.Cut(1, 2) var/id = text2num(target) @@ -70,10 +145,10 @@ if(AH) target = AH.initiator_ckey else - return "Ticket #[id] not found!" + return new /datum/tgs_message_content("Ticket #[id] not found.") var/res = TgsPm(target, all_params.Join(" "), sender.friendly_name) if(res != "Message Successful") - return res + return new /datum/tgs_message_content(res) /datum/tgs_chat_command/namecheck name = "namecheck" @@ -83,10 +158,10 @@ /datum/tgs_chat_command/namecheck/Run(datum/tgs_chat_user/sender, params) params = trim(params) if(!params) - return "Insufficient parameters" + return new /datum/tgs_message_content("Please specify a target.") log_admin("Chat Name Check: [sender.friendly_name] on [params]") message_admins("Name checking [params] from [sender.friendly_name]") - return keywords_lookup(params, 1) + return new /datum/tgs_message_content(keywords_lookup(params, TRUE)) /datum/tgs_chat_command/adminwho name = "adminwho" @@ -94,7 +169,15 @@ admin_only = TRUE /datum/tgs_chat_command/adminwho/Run(datum/tgs_chat_user/sender, params) - return tgsadminwho() + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = "Admins" + embed.colour = COLOR_DARK_CYAN + embed.description = tgsadminwho() || "No admins online." + + var/datum/tgs_message_content/adminwho = new() + adminwho.embed = embed + + return adminwho GLOBAL_LIST(round_end_notifiees) @@ -107,7 +190,7 @@ GLOBAL_LIST(round_end_notifiees) if(!SSticker.IsRoundInProgress() && SSticker.HasRoundStarted()) return "[sender.mention], the round has already ended!" LAZYSET(GLOB.round_end_notifiees, sender.mention, TRUE) - return "I will notify [sender.mention] when the round ends." + return new /datum/tgs_message_content( "I will notify [sender.mention] when the round ends.") /datum/tgs_chat_command/sdql name = "sdql" @@ -116,15 +199,26 @@ GLOBAL_LIST(round_end_notifiees) /datum/tgs_chat_command/sdql/Run(datum/tgs_chat_user/sender, params) if(GLOB.AdminProcCaller) - return "Unable to run query, another admin proc call is in progress. Try again later." + return new /datum/tgs_message_content("Unable to run query, another admin proc call is in progress. Try again later.") GLOB.AdminProcCaller = "CHAT_[sender.friendly_name]" //_ won't show up in ckeys so it'll never match with a real admin var/list/results = world.SDQL2_query(params, GLOB.AdminProcCaller, GLOB.AdminProcCaller) GLOB.AdminProcCaller = null if(!results) - return "Query produced no output" + return new /datum/tgs_message_content("Query produced no output.") var/list/text_res = results.Copy(1, 3) var/list/refs = results.len > 3 ? results.Copy(4) : null - . = "[text_res.Join("\n")][refs ? "\nRefs: [refs.Join(" ")]" : ""]" + + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = "SDQL Query Results" + embed.colour = COLOR_DARK_CYAN + embed.description = text_res.Join("\n") || "No results." + embed.fields = list() + embed.fields += new /datum/tgs_chat_embed/field("Refs", refs ? refs.Join("\n") : "None") + + var/datum/tgs_message_content/sdql = new() + sdql.embed = embed + + return sdql /datum/tgs_chat_command/reload_admins name = "reload_admins" @@ -134,8 +228,60 @@ GLOBAL_LIST(round_end_notifiees) /datum/tgs_chat_command/reload_admins/Run(datum/tgs_chat_user/sender, params) ReloadAsync() log_admin("[sender.friendly_name] reloaded admins via chat command.") - return "Admins reloaded." + return new /datum/tgs_message_content("Admins reloaded.") /datum/tgs_chat_command/reload_admins/proc/ReloadAsync() set waitfor = FALSE load_admins() + +/datum/tgs_chat_command/manifest + name = "manifest" + help_text = "Displays the current crew manifest" + +/datum/tgs_chat_command/manifest/Run(datum/tgs_chat_user/sender, params) + var/list/manifest = SSovermap.get_manifest() + + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = "__Crew Manifest:__" + embed.colour = COLOR_DARK_CYAN + + if(!length(manifest)) + embed.description = "No crew manifest available." + else + embed.fields = list() + for(var/ship in manifest) + var/list/entries = manifest[ship] + var/list/ship_entries = list() + for(var/entry in entries) + var/list/entry_list = entry + ship_entries += "[entry_list["name"]]: [entry_list["rank"]]" + + var/datum/tgs_chat_embed/field/ship_field = new(ship, ship_entries.Join("\n")) + ship_field.is_inline = TRUE + embed.fields += ship_field + + var/datum/tgs_message_content/manifest_content = new() + manifest_content.embed = embed + + return manifest_content + +/datum/tgs_chat_command/who + name = "who" + help_text = "Displays the current player list" + +/datum/tgs_chat_command/who/Run(datum/tgs_chat_user/sender, params) + var/datum/tgs_chat_embed/structure/embed = new() + embed.colour = COLOR_DARK_CYAN + + if(!length(GLOB.clients)) + embed.title = "__Players:__" + embed.description = "No players online." + else + embed.title = "__Players ([length(GLOB.clients)]):__" + for(var/client/player as anything in GLOB.clients) + embed.description += "[player.ckey]\n" + + var/datum/tgs_message_content/who = new() + who.embed = embed + + return who 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/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..bb46d7250b0b 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -125,13 +125,13 @@ log_admin("[key_name(usr)] spawned a blob with base resource gain [strength].") new/datum/round_event/ghost_role/blob(TRUE, strength) if("centcom") - message_admins("[key_name(usr)] is creating a CentCom response team...") + message_admins("[key_name(usr)] is creating a response team...") if(src.makeEmergencyresponseteam()) - message_admins("[key_name(usr)] created a CentCom response team.") - log_admin("[key_name(usr)] created a CentCom response team.") + message_admins("[key_name(usr)] created a response team.") + log_admin("[key_name(usr)] created a response team.") else - message_admins("[key_name_admin(usr)] tried to create a CentCom response team. Unfortunately, there were not enough candidates available.") - log_admin("[key_name(usr)] failed to create a CentCom response team.") + message_admins("[key_name_admin(usr)] tried to create a response team. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a response team.") if("abductors") message_admins("[key_name(usr)] is creating an abductor team...") if(src.makeAbductorTeam()) @@ -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..5ac4714257ef 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) @@ -494,9 +494,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) dat += "[FOURSPACES][ticket_href("Refresh", ref_src)][FOURSPACES][ticket_href("Re-Title", ref_src, "retitle")]" if(state != AHELP_ACTIVE) dat += "[FOURSPACES][ticket_href("Reopen", ref_src, "reopen")]" - dat += "

    Opened at: [gameTimestamp(wtime = opened_at)] (Approx [DisplayTimeText(world.time - opened_at)] ago)" + dat += "

    Opened at: [game_timestamp(wtime = opened_at)] (Approx [DisplayTimeText(world.time - opened_at)] ago)" if(closed_at) - dat += "
    Closed at: [gameTimestamp(wtime = closed_at)] (Approx [DisplayTimeText(world.time - closed_at)] ago)" + dat += "
    Closed at: [game_timestamp(wtime = closed_at)] (Approx [DisplayTimeText(world.time - closed_at)] ago)" dat += "

    " if(initiator) dat += "Actions:
    [full_monty(ref_src)]
    " @@ -687,7 +687,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /proc/send2tgs(msg,msg2) msg = format_text(msg) msg2 = format_text(msg2) - world.TgsTargetedChatBroadcast("[msg] | [msg2]", TRUE) + world.TgsTargetedChatBroadcast(new /datum/tgs_message_content("[msg] | [msg2]"), TRUE) /** * Sends a message to a set of cross-communications-enabled servers using world topic calls @@ -735,19 +735,11 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /proc/tgsadminwho() - var/list/message = list("Admins: ") var/list/admin_keys = list() - for(var/adm in GLOB.admins) - var/client/C = adm - admin_keys += "[C][C.holder.fakekey ? "(Stealth)" : ""][C.is_afk() ? "(AFK)" : ""]" + for(var/client/admin as anything in GLOB.admins) + admin_keys += "[admin][admin.holder.fakekey ? "(Stealth)" : ""][admin.is_afk() ? "(AFK)" : ""]" - for(var/admin in admin_keys) - if(LAZYLEN(message) > 1) - message += ", [admin]" - else - message += "[admin]" - - return jointext(message, "") + return jointext(admin_keys, "\n") /proc/keywords_lookup(msg,external) 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..6c303cddf060 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -1,3 +1,6 @@ +/// If we spawn an ERT with the "choose experienced leader" option, select the leader from the top X playtimes +#define ERT_EXPERIENCED_LEADER_CHOOSE_TOP 3 + /client/proc/one_click_antag() set name = "Create Antagonist" set desc = "Auto-create an antagonist of your choice" @@ -17,7 +20,7 @@ Make Blob
    Make Wizard (Requires Ghosts)
    Make Nuke Team (Requires Ghosts)
    - Make CentCom Response Team (Requires Ghosts)
    + Make Response Team (Requires Ghosts)
    Make Abductor Team (Requires Ghosts)
    Make Revenant (Requires Ghost)
    "} @@ -218,6 +221,11 @@ .["mainsettings"]["mission"]["value"] = newtemplate.mission .["mainsettings"]["polldesc"]["value"] = newtemplate.polldesc .["mainsettings"]["open_armory"]["value"] = newtemplate.opendoors ? "Yes" : "No" + .["mainsettings"]["leader_experience"]["value"] = newtemplate.leader_experience ? "Yes" : "No" + .["mainsettings"]["random_names"]["value"] = newtemplate.random_names ? "Yes" : "No" + .["mainsettings"]["spawn_admin"]["value"] = newtemplate.spawn_admin ? "Yes" : "No" + .["mainsettings"]["use_custom_shuttle"]["value"] = newtemplate.use_custom_shuttle ? "Yes" : "No" + .["mainsettings"]["spawn_at_outpost"]["value"] = newtemplate.spawn_at_outpost ? "Yes" : "No" /datum/admins/proc/equipAntagOnDummy(mob/living/carbon/human/dummy/mannequin, datum/antagonist/antag) @@ -226,8 +234,6 @@ if (ispath(antag, /datum/antagonist/ert)) var/datum/antagonist/ert/ert = antag mannequin.equipOutfit(initial(ert.outfit), TRUE) - else if (ispath(antag, /datum/antagonist/official)) - mannequin.equipOutfit(/datum/outfit/centcom/centcom_official, TRUE) /datum/admins/proc/makeERTPreviewIcon(list/settings) // Set up the dummy for its photoshoot @@ -277,18 +283,23 @@ 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), - "enforce_human" = list("desc" = "Enforce human authority", "type" = "boolean", "value" = "No"), + "enforce_human" = list("desc" = "Spawn as humans", "type" = "boolean", "value" = "[(ertemplate.enforce_human ? "Yes" : "No")]"), "open_armory" = list("desc" = "Open armory doors", "type" = "boolean", "value" = "[(ertemplate.opendoors ? "Yes" : "No")]"), + "leader_experience" = list("desc" = "Pick an experienced leader", "type" = "boolean", "value" = "[(ertemplate.leader_experience ? "Yes" : "No")]"), + "random_names" = list("desc" = "Randomize names", "type" = "boolean", "value" = "[(ertemplate.random_names ? "Yes" : "No")]"), + "spawn_admin" = list("desc" = "Spawn yourself as briefing officer", "type" = "boolean", "value" = "[(ertemplate.spawn_admin ? "Yes" : "No")]"), + "use_custom_shuttle" = list("desc" = "Use the ERT's custom shuttle (if it has one)", "type" = "boolean", "value" = "[(ertemplate.use_custom_shuttle ? "Yes" : "No")]"), + "spawn_at_outpost" = list("desc" = "Spawn the ERT/Dock the ERT at the Outpost", "type" = "boolean", "value" = "[(ertemplate.spawn_at_outpost ? "Yes" : "No")]"), ) ) - var/list/prefreturn = presentpreflikepicker(usr,"Customize ERT", "Customize ERT", Button1="Ok", width = 600, StealFocus = 1,Timeout = 0, settings=settings) + var/list/prefreturn = presentpreflikepicker(usr, "Customize ERT", "Customize ERT", Button1="Ok", width = 600, StealFocus = 1,Timeout = 0, settings=settings) if (isnull(prefreturn)) return FALSE @@ -306,79 +317,174 @@ ertemplate.teamsize = prefs["teamsize"]["value"] ertemplate.mission = prefs["mission"]["value"] ertemplate.polldesc = prefs["polldesc"]["value"] - ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" ? TRUE : FALSE - ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" ? TRUE : FALSE - - var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc]?", "deathsquad", null) + ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" // these next 7 are effectively toggles + ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" + ertemplate.leader_experience = prefs["leader_experience"]["value"] == "Yes" + ertemplate.random_names = prefs["random_names"]["value"] == "Yes" + ertemplate.spawn_admin = prefs["spawn_admin"]["value"] == "Yes" + ertemplate.use_custom_shuttle = prefs["use_custom_shuttle"]["value"] == "Yes" + ertemplate.spawn_at_outpost = prefs["use_custom_shuttle"]["value"] == "Yes" + + var/list/spawnpoints = GLOB.emergencyresponseteamspawn + var/index = 0 + + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc]?", "deathsquad") var/teamSpawned = FALSE - if(candidates.len > 0) - //Pick the (un)lucky players - var/numagents = min(ertemplate.teamsize,candidates.len) - - //Create team - var/datum/team/ert/ert_team = new ertemplate.team - if(ertemplate.rename_team) - ert_team.name = ertemplate.rename_team - - //Asign team objective - var/datum/objective/missionobj = new - missionobj.team = ert_team - missionobj.explanation_text = ertemplate.mission - missionobj.completed = TRUE - ert_team.objectives += missionobj - ert_team.mission = missionobj - - var/list/spawnpoints = GLOB.emergencyresponseteamspawn - var/index = 0 - while(numagents && candidates.len) - var/spawnloc = spawnpoints[index+1] - //loop through spawnpoints one at a time - index = (index + 1) % spawnpoints.len - var/mob/dead/observer/chosen_candidate = pick(candidates) - candidates -= chosen_candidate - if(!chosen_candidate.key) - continue + // This list will take priority over spawnpoints if not empty + var/list/spawn_turfs = list() - //Spawn the body - var/mob/living/carbon/human/ERTOperative = new ertemplate.mobtype(spawnloc) - chosen_candidate.client.prefs.copy_to(ERTOperative) - ERTOperative.key = chosen_candidate.key + // Takes precedence over spawnpoints[1] if not null + var/turf/brief_spawn - if(ertemplate.enforce_human || !(ERTOperative.dna.species.changesource_flags & ERT_SPAWN)) // Don't want any exploding plasmemes - ERTOperative.set_species(/datum/species/human) + if(!length(candidates)) + to_chat(usr, span_warning("No applicants for ERT. Aborting spawn.")) + return FALSE + + if(ertemplate.spawn_at_outpost && !ertemplate.use_custom_shuttle) + if(!length(GLOB.emergencyresponseteam_outpostspawn)) + message_admins("No outpost spawns found!") + spawnpoints = GLOB.emergencyresponseteam_outpostspawn - //Give antag datum - var/datum/antagonist/ert/ert_antag + if(ertemplate.use_custom_shuttle && ertemplate.ert_template) + to_chat(usr, span_boldnotice("Attempting to spawn ERT custom shuttle, this may take a few seconds...")) - if(numagents == 1) - ert_antag = new ertemplate.leader_role + var/datum/map_template/shuttle/template = new ertemplate.ert_template + var/spawn_location + + if(ertemplate.spawn_at_outpost) + if(length(SSovermap.outposts) > 1) + var/temp_loc = input(usr, "Select outpost to spawn at") as null|anything in SSovermap.outposts + if(!temp_loc) + message_admins("ERT Shuttle found no outpost to spawn at!") + return + spawn_location = temp_loc else - ert_antag = ertemplate.roles[WRAP(numagents,1,length(ertemplate.roles) + 1)] - ert_antag = new ert_antag - - ERTOperative.mind.add_antag_datum(ert_antag,ert_team) - ERTOperative.mind.assigned_role = ert_antag.name - - //Logging and cleanup - log_game("[key_name(ERTOperative)] has been selected as an [ert_antag.name]") - numagents-- - teamSpawned++ - - if (teamSpawned) - message_admins("[ertemplate.polldesc] has spawned with the mission: [ertemplate.mission]") - - //Open the Armory doors - if(ertemplate.opendoors) - for(var/obj/machinery/door/poddoor/ert/door in GLOB.airlocks) - door.open() - CHECK_TICK - return TRUE + spawn_location = SSovermap.outposts[1] + + if(!spawn_location) + spawn_location = SSovermap.get_unused_overmap_square() + + var/datum/overmap/ship/controlled/ship = new(spawn_location, template) + + if(!ship) + CRASH("Loading ERT shuttle failed!") + + var/list/shuttle_turfs = ship.shuttle_port.return_turfs() + + for(var/turf/ship_turfs as anything in shuttle_turfs) + for(var/obj/effect/landmark/ert_shuttle_spawn/spawner in ship_turfs) + spawn_turfs += get_turf(spawner) + + if(!brief_spawn) + brief_spawn = locate(/obj/effect/landmark/ert_shuttle_brief_spawn) in shuttle_turfs + + if(!length(spawn_turfs)) + stack_trace("ERT shuttle loaded but found no spawnpoints, placing the ERT at wherever inside the shuttle instead.") + for(var/turf/open/floor/open_turf in shuttle_turfs) + if(!find_safe_turf(open_turf)) + continue + spawn_turfs += open_turf + + if(ertemplate.spawn_admin) + if(isobserver(usr)) + var/mob/living/carbon/human/admin_officer = new (brief_spawn || spawn_turfs || spawnpoints[1]) + var/chosen_outfit = usr.client?.prefs?.brief_outfit + usr.client.prefs.copy_to(admin_officer) + admin_officer.equipOutfit(chosen_outfit) + admin_officer.key = usr.key + else + to_chat(usr, span_warning("Could not spawn you in as briefing officer as you are not a ghost!")) + + //Pick the (un)lucky players + var/numagents = min(ertemplate.teamsize, length(candidates)) + + //Create team + var/datum/team/ert/ert_team = new ertemplate.team + if(ertemplate.rename_team) + ert_team.name = ertemplate.rename_team + + //Assign team objective + var/datum/objective/missionobj = new + missionobj.team = ert_team + missionobj.explanation_text = ertemplate.mission + missionobj.completed = TRUE + ert_team.objectives += missionobj + ert_team.mission = missionobj + + var/mob/dead/observer/earmarked_leader + var/leader_spawned = FALSE // just in case the earmarked leader disconnects or becomes unavailable, we can try giving leader to the last guy to get chosen + + if(ertemplate.leader_experience) + var/list/candidate_living_exps = list() + for(var/i in candidates) + var/mob/dead/observer/potential_leader = i + candidate_living_exps[potential_leader] = potential_leader.client?.get_exp_living(TRUE) + + candidate_living_exps = sortList(candidate_living_exps, cmp=/proc/cmp_numeric_dsc) + if(candidate_living_exps.len > ERT_EXPERIENCED_LEADER_CHOOSE_TOP) + candidate_living_exps = candidate_living_exps.Cut(ERT_EXPERIENCED_LEADER_CHOOSE_TOP+1) // pick from the top ERT_EXPERIENCED_LEADER_CHOOSE_TOP contenders in playtime + earmarked_leader = pick(candidate_living_exps) else - return FALSE + earmarked_leader = pick(candidates) + + while(numagents && candidates.len) + var/turf/spawnloc + if(length(spawn_turfs)) + spawnloc = pick(spawn_turfs) + else + if(!spawnpoints.len) + CRASH("ERT has no spawnpoints!") + spawnloc = spawnpoints[index+1] + //loop through spawnpoints one at a time + index = (index + 1) % spawnpoints.len + + var/mob/dead/observer/chosen_candidate = earmarked_leader || pick(candidates) // this way we make sure that our leader gets chosen + candidates -= chosen_candidate + if(!chosen_candidate.key) + continue + + //Spawn the body + var/mob/living/carbon/human/ert_operative = new ertemplate.mobtype(spawnloc) + chosen_candidate.client.prefs.copy_to(ert_operative) + ert_operative.key = chosen_candidate.key + + if(ertemplate.enforce_human || !(ert_operative.dna.species.changesource_flags & ERT_SPAWN)) // Don't want any exploding plasmemes + ert_operative.set_species(/datum/species/human) + + //Give antag datum + var/datum/antagonist/ert/ert_antag + + if((chosen_candidate == earmarked_leader) || (numagents == 1 && !leader_spawned)) + ert_antag = new ertemplate.leader_role () + earmarked_leader = null + leader_spawned = TRUE + else + ert_antag = ertemplate.roles[WRAP(numagents,1,length(ertemplate.roles) + 1)] + ert_antag = new ert_antag + ert_antag.random_names = ertemplate.random_names + + ert_operative.mind.add_antag_datum(ert_antag,ert_team) + ert_operative.mind.assigned_role = ert_antag.name + + //Logging and cleanup + log_game("[key_name(ert_operative)] has been selected as an [ert_antag.name]") + numagents-- + teamSpawned++ + + if(teamSpawned) + message_admins("[ertemplate.rename_team] has spawned with the mission: [ertemplate.mission]") + + //Open the Armory doors + if(ertemplate.opendoors) + for(var/obj/machinery/door/poddoor/ert/door in GLOB.airlocks) + door.open() + CHECK_TICK + return TRUE return + //Abductors /datum/admins/proc/makeAbductorTeam() new /datum/round_event/ghost_role/abductor @@ -387,3 +493,5 @@ /datum/admins/proc/makeRevenant() new /datum/round_event/ghost_role/revenant(TRUE, TRUE) return 1 + +#undef ERT_EXPERIENCED_LEADER_CHOOSE_TOP diff --git a/code/modules/admin/verbs/panicbunker.dm b/code/modules/admin/verbs/panicbunker.dm index b7c6ad3b256c..24834e5af5d4 100644 --- a/code/modules/admin/verbs/panicbunker.dm +++ b/code/modules/admin/verbs/panicbunker.dm @@ -74,7 +74,7 @@ GLOBAL_LIST_EMPTY(bunker_passthrough) /datum/tgs_chat_command/addbunkerbypass/Run(datum/tgs_chat_user/sender, params) if(!CONFIG_GET(flag/sql_enabled)) - return "The Database is not enabled!" + return new /datum/tgs_message_content("The Database is not enabled!") GLOB.bunker_passthrough |= ckey(params) @@ -82,7 +82,7 @@ GLOBAL_LIST_EMPTY(bunker_passthrough) SSpersistence.SavePanicBunker() //we can do this every time, it's okay log_admin("[sender.friendly_name] has added [params] to the current round's bunker bypass list.") message_admins("[sender.friendly_name] has added [params] to the current round's bunker bypass list.") - return "[params] has been added to the current round's bunker bypass list." + return new /datum/tgs_message_content("[params] has been added to the current round's bunker bypass list.") /datum/controller/subsystem/persistence/proc/LoadPanicBunker() var/bunker_path = file("data/bunker_passthrough.json") 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/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index aa1717230c48..537afd8d4ff5 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -101,6 +101,7 @@ desc = "A single-use teleporter designed to quickly reinforce operatives in the field." icon = 'icons/obj/device.dmi' icon_state = "locator" + var/nukieonly = TRUE var/borg_to_spawn var/locked = TRUE @@ -181,6 +182,10 @@ name = "syndicate medical teleporter" borg_to_spawn = "Medical" +/obj/item/antag_spawner/nuke_ops/borg_tele/medical/unlocked // used for cybersun ERT + locked = FALSE + nukieonly = FALSE + /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur name = "syndicate saboteur teleporter" @@ -193,7 +198,7 @@ /obj/item/antag_spawner/nuke_ops/borg_tele/spawn_antag(client/C, turf/T, kind, datum/mind/user) var/mob/living/silicon/robot/R var/datum/antagonist/nukeop/creator_op = user.has_antag_datum(/datum/antagonist/nukeop,TRUE) - if(!creator_op) + if(!creator_op && nukieonly) return switch(borg_to_spawn) @@ -210,8 +215,9 @@ if(prob(50)) brainfirstname = pick(GLOB.first_names_female) var/brainopslastname = pick(GLOB.last_names) - if(creator_op.nuke_team.syndicate_name) //the brain inside the syndiborg has the same last name as the other ops. - brainopslastname = creator_op.nuke_team.syndicate_name + if(nukieonly) //the brain inside the syndiborg has the same last name as the other ops. + if(creator_op.nuke_team.syndicate_name) + brainopslastname = creator_op.nuke_team.syndicate_name var/brainopsname = "[brainfirstname] [brainopslastname]" R.mmi.name = "[initial(R.mmi.name)]: [brainopsname]" @@ -224,7 +230,8 @@ var/datum/antagonist/nukeop/new_borg = new() new_borg.send_to_spawnpoint = FALSE - R.mind.add_antag_datum(new_borg,creator_op.nuke_team) + if(nukieonly) + R.mind.add_antag_datum(new_borg,creator_op.nuke_team) R.mind.special_role = "Syndicate Cyborg" ///////////SLAUGHTER DEMON 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 ca9b6af1b106..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) @@ -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/fleshmend.dm b/code/modules/antagonists/changeling/powers/fleshmend.dm index efb1960e378c..73a4dda5cfd5 100644 --- a/code/modules/antagonists/changeling/powers/fleshmend.dm +++ b/code/modules/antagonists/changeling/powers/fleshmend.dm @@ -10,12 +10,12 @@ //Starts healing you every second for 10 seconds. //Can be used whilst unconscious. /datum/action/changeling/fleshmend/sting_action(mob/living/user) - if(user.has_status_effect(STATUS_EFFECT_FLESHMEND)) - to_chat(user, "We are already fleshmending!") + if(user.has_status_effect(/datum/status_effect/fleshmend)) + to_chat(user, span_warning("We are already fleshmending!")) return ..() - to_chat(user, "We begin to heal rapidly.") - user.apply_status_effect(STATUS_EFFECT_FLESHMEND) + to_chat(user, span_notice("We begin to heal rapidly.")) + user.apply_status_effect(/datum/status_effect/fleshmend) return TRUE //Check buffs.dm for the fleshmend status effect code 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..6d191b112103 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 @@ -816,7 +816,7 @@ structure_check() searches for nearby cultist structures required for the invoca fail_invoke() log_game("Manifest rune failed - user not standing on rune") return list() - if(user.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST)) + if(user.has_status_effect(/datum/status_effect/cultghost)) to_chat(user, "Ghosts can't summon more ghosts!") fail_invoke() log_game("Manifest rune failed - user is a ghost") @@ -849,7 +849,7 @@ structure_check() searches for nearby cultist structures required for the invoca new_human.real_name = ghost_to_spawn.real_name new_human.alpha = 150 //Makes them translucent new_human.equipOutfit(/datum/outfit/ghost_cultist) //give them armor - new_human.apply_status_effect(STATUS_EFFECT_SUMMONEDGHOST) //ghosts can't summon more ghosts + new_human.apply_status_effect(/datum/status_effect/cultghost) //ghosts can't summon more ghosts new_human.see_invisible = SEE_INVISIBLE_OBSERVER ghosts++ playsound(src, 'sound/magic/exit_blood.ogg', 50, TRUE) @@ -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/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index c12fcb8eaf27..f28bd9e428bb 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -11,7 +11,7 @@ var/role = "Security Officer" var/list/name_source var/random_names = TRUE - var/rip_and_tear = FALSE + var/deathsquad = FALSE var/equip_ert = TRUE var/forge_objectives_for_ert = TRUE can_elimination_hijack = ELIMINATION_PREVENT @@ -28,6 +28,20 @@ equipERT() . = ..() +/datum/antagonist/ert/create_team(datum/team/ert/new_team) + if(istype(new_team)) + ert_team = new_team + +/datum/antagonist/ert/proc/forge_objectives() + if(ert_team) + objectives |= ert_team.objectives + +/datum/antagonist/ert/proc/equipERT() + var/mob/living/carbon/human/H = owner.current + if(!istype(H)) + return + H.equipOutfit(outfit) + /datum/antagonist/ert/get_team() return ert_team @@ -38,15 +52,56 @@ /datum/antagonist/ert/proc/update_name() owner.current.fully_replace_character_name(owner.current.real_name,"[role] [pick(name_source)]") -/datum/antagonist/ert/deathsquad/New() - . = ..() - name_source = GLOB.commando_names +/datum/antagonist/ert/greet() + if(!ert_team) + return -/datum/antagonist/ert/deathsquad/apply_innate_effects(mob/living/mob_override) - ADD_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) + to_chat(owner, "You are the [name].") -/datum/antagonist/ert/deathsquad/remove_innate_effects(mob/living/mob_override) - REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) + var/missiondesc = "Your team is being sent to [station_name()].
    " + if(leader) //If Squad Leader + missiondesc += " Lead your team to ensure the completion of your objectives." + else + missiondesc += " Follow orders given to you by your squad leader." + if(deathsquad) + missiondesc += "Leave no witnesses." + + missiondesc += "
    Your Mission: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +// ******************************************************************** +// ** Nanotrasen ** +// ******************************************************************** + +// Official +/datum/antagonist/ert/official + name = "CentCom Official" + show_name_in_check_antagonists = TRUE + var/datum/objective/mission + role = "Inspector" + random_names = FALSE + outfit = /datum/outfit/centcom/centcom_official + +/datum/antagonist/ert/official/greet() + to_chat(owner, "You are a CentCom Official.") + if (ert_team) + to_chat(owner, "Central Command is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]") + else + to_chat(owner, "Central Command is sending you to [station_name()] with the task: [mission.explanation_text]") + +/datum/antagonist/ert/official/forge_objectives() + if (ert_team) + return ..() + if(mission) + return + var/datum/objective/missionobj = new () + missionobj.owner = owner + missionobj.explanation_text = "Conduct a routine performance review of [station_name()]'s vessels." + missionobj.completed = TRUE + mission = missionobj + objectives |= mission + +// Standard ERT /datum/antagonist/ert/security // kinda handled by the base template but here for completion @@ -74,43 +129,30 @@ /datum/antagonist/ert/commander/red outfit = /datum/outfit/centcom/ert/commander/alert +// Deathsquad + /datum/antagonist/ert/deathsquad name = "Deathsquad Trooper" outfit = /datum/outfit/centcom/death_commando role = "Trooper" - rip_and_tear = TRUE - -/datum/antagonist/ert/medic/inquisitor - outfit = /datum/outfit/centcom/ert/medic/inquisitor + deathsquad = TRUE -/datum/antagonist/ert/medic/inquisitor/on_gain() - . = ..() - owner.holy_role = HOLY_ROLE_PRIEST - -/datum/antagonist/ert/security/inquisitor - outfit = /datum/outfit/centcom/ert/security/inquisitor +/datum/antagonist/ert/deathsquad/leader + name = "Deathsquad Officer" + outfit = /datum/outfit/centcom/death_commando + role = "Officer" -/datum/antagonist/ert/security/inquisitor/on_gain() +/datum/antagonist/ert/deathsquad/New() . = ..() - owner.holy_role = HOLY_ROLE_PRIEST - -/datum/antagonist/ert/chaplain - role = "Chaplain" - outfit = /datum/outfit/centcom/ert/chaplain - -/datum/antagonist/ert/chaplain/inquisitor - outfit = /datum/outfit/centcom/ert/chaplain/inquisitor + name_source = GLOB.commando_names -/datum/antagonist/ert/chaplain/on_gain() - . = ..() - owner.holy_role = HOLY_ROLE_PRIEST +/datum/antagonist/ert/deathsquad/apply_innate_effects(mob/living/mob_override) + ADD_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) -/datum/antagonist/ert/commander/inquisitor - outfit = /datum/outfit/centcom/ert/commander/inquisitor +/datum/antagonist/ert/deathsquad/remove_innate_effects(mob/living/mob_override) + REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) -/datum/antagonist/ert/commander/inquisitor/on_gain() - . = ..() - owner.holy_role = HOLY_ROLE_PRIEST +// Janitor /datum/antagonist/ert/janitor role = "Janitor" @@ -120,10 +162,7 @@ role = "Heavy Duty Janitor" outfit = /datum/outfit/centcom/ert/janitor/heavy -/datum/antagonist/ert/deathsquad/leader - name = "Deathsquad Officer" - outfit = /datum/outfit/centcom/death_commando - role = "Officer" +// Intern /datum/antagonist/ert/intern name = "CentCom Intern" @@ -136,45 +175,13 @@ outfit = /datum/outfit/centcom/centcom_intern/leader role = "Head Intern" -/datum/antagonist/ert/clown - role = "Clown" - outfit = /datum/outfit/centcom/ert/clown +/datum/antagonist/ert/intern/unarmed + outfit = /datum/outfit/centcom/centcom_intern/unarmed -/datum/antagonist/ert/clown/New() - . = ..() - name_source = GLOB.clown_names +/datum/antagonist/ert/intern/leader/unarmed + outfit = /datum/outfit/centcom/centcom_intern/leader/unarmed -/datum/antagonist/ert/create_team(datum/team/ert/new_team) - if(istype(new_team)) - ert_team = new_team - -/datum/antagonist/ert/proc/forge_objectives() - if(ert_team) - objectives |= ert_team.objectives - -/datum/antagonist/ert/proc/equipERT() - var/mob/living/carbon/human/H = owner.current - if(!istype(H)) - return - H.equipOutfit(outfit) - - -/datum/antagonist/ert/greet() - if(!ert_team) - return - - to_chat(owner, "You are the [name].") - - var/missiondesc = "Your squad is being sent on a mission to [station_name()] by Nanotrasen's Security Division." - if(leader) //If Squad Leader - missiondesc += " Lead your squad to ensure the completion of the mission. Board the shuttle when your team is ready." - else - missiondesc += " Follow orders given to you by your squad leader." - if(!rip_and_tear) - missiondesc += "Avoid civilian casualties when possible." - - missiondesc += "
    Your Mission : [ert_team.mission.explanation_text]" - to_chat(owner,missiondesc) +// Marine /datum/antagonist/ert/marine name = "Marine Commander" @@ -196,8 +203,340 @@ outfit = /datum/outfit/centcom/ert/marine/medic role = "Medical Officer" +// Loss Prevention + +/datum/antagonist/ert/lp + name = "Loss Prevention Security Specialist" + outfit = /datum/outfit/centcom/ert/lp + role = "Security Specialist" + +/datum/antagonist/ert/lp/medic + name = "Loss Prevention Medical Specialist" + outfit = /datum/outfit/centcom/ert/lp/medic + role = "Medical Specialist" + +/datum/antagonist/ert/lp/engineer + name = "Loss Prevention Engineering Specialist" + outfit = /datum/outfit/centcom/ert/lp/engineer + role = "Engineering Specialist" + +/datum/antagonist/ert/lp/lieutenant + name = "Loss Prevention Lieutenant" + leader = TRUE + outfit = /datum/outfit/centcom/ert/lp/lieutenant + role = "Lieutenant" + +// ******************************************************************** +// ** Inteq ** +// ******************************************************************** + +/datum/antagonist/ert/inteq + name = "Inteq Mercenary" + outfit = /datum/outfit/job/security/inteq + random_names = TRUE + role = "Enforcer" + + +/datum/antagonist/ert/inteq/greet() + to_chat(owner, "You are the [name].") + var/missiondesc = "You're one of the many mercenaries under the Inteq Risk Management Group sent to [station_name()].
    " + if(leader) //If Squad Leader + missiondesc += "Lead your squadron to ensure the completion of your contract." + else + missiondesc += "Follow orders given to you by your Vanguard." + if(deathsquad) + missiondesc += "Leave no witnesses." + + missiondesc += "
    Contract Terms: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +/datum/antagonist/ert/inteq/leader + name = "Inteq Mercenary Leader" + outfit = /datum/outfit/job/captain/inteq + role = "Vanguard" + +// ******************************************************************** +// ** SolGov ** +// ******************************************************************** /datum/antagonist/ert/solgov - name = "SolGov Sonnensoldner" - outfit = /datum/outfit/solgov/sonnensoldner + name = "SolGov Sonnensöldner" + outfit = /datum/outfit/centcom/ert/solgov random_names = FALSE - role = "SolGov Sonnensoldner" + role = "Sonnensöldner" + +/datum/antagonist/ert/official/solgov + name = "SolGov Inspector" + outfit = /datum/outfit/centcom/ert/solgov/inspector + role = "Solarian Inspector" + +/datum/antagonist/ert/official/solgov/greet() + to_chat(owner, "You are a Solarian Inspector.") + if (ert_team) + to_chat(owner, "The Department of Administrative Affairs is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]") + else + to_chat(owner, "The Department of Administrative Affairs is sending you to [station_name()] with the task: [mission.explanation_text]") + + +// ******************************************************************** +// ** Minutemen ** +// ******************************************************************** + +/datum/antagonist/ert/minutemen + name = "Minutemen Infantry" + outfit = /datum/outfit/centcom/ert/minutemen + role = "Minuteman" + +/datum/antagonist/ert/minutemen/greet() + to_chat(owner, "You are the [name].") + var/missiondesc = "You stand shoulder to shoulder with your fellow colonists in the Colonial Minutemen within [station_name()].
    " + if(leader) //If Squad Leader + missiondesc += "Lead your team to ensure the completion of your objectives." + else + missiondesc += "Follow orders given to you by your Sergent." + if(deathsquad) + missiondesc += "Leave no witnesses." + + missiondesc += "
    Your Mission: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +/datum/antagonist/ert/minutemen/leader + name = "Minutemen Leader" + leader = TRUE + outfit = /datum/outfit/centcom/ert/minutemen/leader + role = "Sergeant" + +/datum/antagonist/ert/minutemen/bard + name = "BARD Infantry" + outfit = /datum/outfit/centcom/ert/minutemen/bard + role = "Minuteman" + +/datum/antagonist/ert/minutemen/bard/leader + name = "BARD Leader" + leader = TRUE + outfit = /datum/outfit/centcom/ert/minutemen/bard/leader + role = "Sergeant" + +/datum/antagonist/ert/minutemen/riot + name = "Riot Officer" + outfit = /datum/outfit/centcom/ert/minutemen/riot + role = "Minuteman" + +/datum/antagonist/ert/minutemen/riot/leader + name = "Riot Sergeant" + leader = TRUE + outfit = /datum/outfit/centcom/ert/minutemen/riot/leader + role = "Sergeant" + +/datum/antagonist/ert/official/minutemen + name = "GOLD Inspector" + outfit = /datum/outfit/centcom/ert/minutemen/inspector + role = "Lieutenant" + +/datum/antagonist/ert/official/minutemen/greet() + to_chat(owner, "You are the GOLD Inspector.") + if (ert_team) + to_chat(owner, "The Galactic Optimum Labor Division is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]") + else + to_chat(owner, "The Galactic Optimum Labor Division is sending you to [station_name()] with the task: [mission.explanation_text]") + +/datum/antagonist/ert/minutemen/piratehunters + name = "Pirate Hunter" + outfit = /datum/outfit/centcom/ert/minutemen/piratehunters + role = "Minuteman" + +/datum/antagonist/ert/minutemen/piratehunters/leader + name = "Pirate Hunter Leader" + leader = TRUE + outfit = /datum/outfit/centcom/ert/minutemen/piratehunters/leader + role = "Sergeant" + +// ******************************************************************** +// ** Syndicate ** +// ******************************************************************** + +/datum/antagonist/ert/syndicate + name = "Syndicate Infantry" + outfit = /datum/outfit/centcom/ert/syndicate + role = "Squaddie" + +/datum/antagonist/ert/syndicate/greet() + to_chat(owner, "You are the [name].") + var/missiondesc = "You are but another member of the Syndicate sent to [station_name()].
    " + if(leader) //If Squad Leader + missiondesc += "Lead your team to ensure the completion of your objectives." + else + missiondesc += "Follow orders given to you by your Sergeant." + if(deathsquad) + missiondesc += "Leave no witnesses." + + missiondesc += "
    Your Mission: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +/datum/antagonist/ert/syndicate/leader + name = "Syndicate Sergeant" + leader = TRUE + outfit = /datum/outfit/centcom/ert/syndicate/leader + role = "Sergeant" + +/datum/antagonist/ert/syndicate/gorlex + name = "2nd Battlegroup Trooper" + outfit = /datum/outfit/centcom/ert/syndicate/gorlex + role = "Trooper" + +/datum/antagonist/ert/syndicate/gorlex/greet() + to_chat(owner, "You are the [name].") + var/missiondesc = "You're a soldier of the 2nd Battlegroup, sometimes known as Gorlex Loyalists, sent to [station_name()].
    " + if(leader) //If Squad Leader + missiondesc += "Lead your team to ensure the completion of your objectives." + else + missiondesc += "Follow orders given to you by your Sergeant." + + missiondesc += "
    Your Mission: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +/datum/antagonist/ert/syndicate/gorlex/pointman + name = "2nd Battlegroup Shotgunner" + outfit = /datum/outfit/centcom/ert/syndicate/gorlex/pointman + role = "Pointman" + +/datum/antagonist/ert/syndicate/gorlex/medic + name = "2nd Battlegroup Medic" + outfit = /datum/outfit/centcom/ert/syndicate/gorlex/medic + role = "Medic" + +/datum/antagonist/ert/syndicate/gorlex/sniper + name = "2nd Battlegroup Sniper" + outfit = /datum/outfit/centcom/ert/syndicate/gorlex/sniper + role = "Marksman" + +/datum/antagonist/ert/syndicate/gorlex/leader + name = "2nd Battlegroup Sergeant" + leader = TRUE + outfit = /datum/outfit/centcom/ert/syndicate/gorlex/leader + role = "Sergeant" + +/datum/antagonist/ert/syndicate/cybersun + name = "Cybersun Commando" + outfit = /datum/outfit/centcom/ert/syndicate/cybersun + role = "Operative" + +/datum/antagonist/ert/syndicate/cybersun/greet() + to_chat(owner, "You are the [name].") + var/missiondesc = "You are one of the commandos enlisted in Cybersun Industries, deployed to [station_name()].
    " + if(leader) //If Squad Leader + missiondesc += "Lead your team to ensure the completion of your objectives." + else + missiondesc += "Follow orders given to you by your Sergeant." + if(prob(50) && !leader) + missiondesc += "
    In addition to your contract with Cybersun, you are also a Gorlex Hardliner. You do not like Cybersun, but you work with them regardless." + + missiondesc += "
    Your Mission: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +/datum/antagonist/ert/syndicate/cybersun/leader + name = "Cybersun Commando Leader" + leader = TRUE + outfit = /datum/outfit/centcom/ert/syndicate/cybersun/leader + role = "Lead Operative" + +/datum/antagonist/ert/syndicate/cybersun/medic + name = "Cybersun Paramedic" + outfit = /datum/outfit/centcom/ert/syndicate/cybersun/medic + role = "Medical Technician" + +/datum/antagonist/ert/syndicate/cybersun/medic/greet() + to_chat(owner, "You are the [name].") + var/missiondesc = "You are one of the many trained paramedics of Cybersun's Medical Intervention program, sent with your team to [station_name()] to aid Cybersun clients in distress.
    " + if(leader) //If Squad Leader + missiondesc += "Lead your team to ensure the safety of Cybersun's clientele.
    " + else + missiondesc += "Follow orders given to you by your Lead Technician. Assist Cybersun clients.
    " + + missiondesc += "
    Your Mission: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +/datum/antagonist/ert/syndicate/cybersun/medic/leader + name = "Cybersun Lead Paramedic" + leader = TRUE + outfit = /datum/outfit/centcom/ert/syndicate/cybersun/medic/leader + role = "Lead Medical Technician" + +// ******************************************************************** +// ** Frontiersmen ** +// ******************************************************************** + +/datum/antagonist/ert/frontier + name = "Frontiersmen Pirate" + outfit = /datum/outfit/centcom/ert/frontiersmen + role = "Grunt" + +/datum/antagonist/ert/frontier/greet() + to_chat(owner, "You are the [name].") + var/missiondesc = "You are one of the ruthless, sadistic pirates in the Frontiersmen pirate fleet, stationed in [station_name()].
    " + if(leader) //If Squad Leader + missiondesc += "Lead your team to complete your objectives." + else + missiondesc += "Follow orders given to you by your Officer." + + missiondesc += "
    Your Mission: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +/datum/antagonist/ert/frontier/leader + name = "Frontiersmen Officer" + outfit = /datum/outfit/centcom/ert/frontiersmen/leader + role = "Officer" + +/datum/antagonist/ert/frontier/medic + name = "Frontiersmen Medic" + outfit = /datum/outfit/centcom/ert/frontiersmen/medic + role = "Stretcher-Bearer" + +/datum/antagonist/ert/frontier/engineer + name = "Frontiersmen Engineer" + outfit = /datum/outfit/centcom/ert/frontiersmen/engineer + role = "Sapper" + +// ******************************************************************** +// ** independent ** +// ******************************************************************** + +/datum/antagonist/ert/independent + name = "Independent Security Officer" + outfit = /datum/outfit/centcom/ert/independent + role = "Security Officer" + +/datum/antagonist/ert/independent/greet() + to_chat(owner, "You are the [name].") + var/missiondesc = "You are one of the many Independent contractors, workers and students on [station_name()].
    " + if(leader) //If Squad Leader + missiondesc += "Lead your team to complete your objectives." + else + missiondesc += "Follow orders given to you by your leader." + + missiondesc += "
    Your Mission: [ert_team.mission.explanation_text]" + to_chat(owner,missiondesc) + +/datum/antagonist/ert/independent/emt + name = "Independent Medical Technician" + outfit = /datum/outfit/centcom/ert/independent/emt + role = "Paramedic" + +/datum/antagonist/ert/independent/firefighter + name = "Independent Firefighter" + outfit = /datum/outfit/centcom/ert/independent/firefighter + role = "Firefighter" + +/datum/antagonist/ert/independent/firefighter/medic + name = "Independent Firefighter Paramedic" + outfit = /datum/outfit/centcom/ert/independent/firefighter/medic + role = "Paramedic" + +/datum/antagonist/ert/independent/firefighter/leader + name = "Independent Firefighter Group Captain" + outfit = /datum/outfit/centcom/ert/independent/firefighter/leader + role = "Group Captain" + +/datum/antagonist/ert/independent/technician + name = "Independent Technician" + outfit = /datum/outfit/centcom/ert/independent/technician + role = "Technician" 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/official/official.dm b/code/modules/antagonists/official/official.dm deleted file mode 100644 index a258d6e68e76..000000000000 --- a/code/modules/antagonists/official/official.dm +++ /dev/null @@ -1,42 +0,0 @@ -/datum/antagonist/official - name = "CentCom Official" - show_name_in_check_antagonists = TRUE - show_in_antagpanel = FALSE - can_elimination_hijack = ELIMINATION_PREVENT - var/datum/objective/mission - var/datum/team/ert/ert_team - show_to_ghosts = TRUE - -/datum/antagonist/official/greet() - to_chat(owner, "You are a CentCom Official.") - if (ert_team) - to_chat(owner, "Central Command is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]") - else - to_chat(owner, "Central Command is sending you to [station_name()] with the task: [mission.explanation_text]") - -/datum/antagonist/official/proc/equip_official() - var/mob/living/carbon/human/H = owner.current - if(!istype(H)) - return - H.equipOutfit(/datum/outfit/centcom/centcom_official) - -/datum/antagonist/official/create_team(datum/team/new_team) - if(istype(new_team)) - ert_team = new_team - -/datum/antagonist/official/proc/forge_objectives() - if (ert_team) - objectives |= ert_team.objectives - else if (!mission) - var/datum/objective/missionobj = new - missionobj.owner = owner - missionobj.explanation_text = "Conduct a routine performance review of [station_name()] and its Captain." - missionobj.completed = 1 - mission = missionobj - objectives |= mission - - -/datum/antagonist/official/on_gain() - forge_objectives() - . = ..() - equip_official() 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/valentines/valentine.dm b/code/modules/antagonists/valentines/valentine.dm index c12885fc3ab8..7616a7888d4f 100644 --- a/code/modules/antagonists/valentines/valentine.dm +++ b/code/modules/antagonists/valentines/valentine.dm @@ -18,13 +18,13 @@ forge_objectives() if(isliving(owner.current)) var/mob/living/L = owner.current - L.apply_status_effect(STATUS_EFFECT_INLOVE, date.current) + L.apply_status_effect(/datum/status_effect/in_love, date.current) . = ..() /datum/antagonist/valentine/on_removal() if(isliving(owner.current)) var/mob/living/L = owner.current - L.remove_status_effect(STATUS_EFFECT_INLOVE) + L.remove_status_effect(/datum/status_effect/in_love) . = ..() /datum/antagonist/valentine/greet() 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..3646370827a4 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 @@ -268,7 +268,7 @@ M.confused += min(M.confused + 10, 20) M.dizziness += min(M.dizziness + 10, 20) M.drowsyness += min(M.drowsyness + 10, 20) - M.apply_status_effect(STATUS_EFFECT_PACIFY, 100) + M.apply_status_effect(/datum/status_effect/pacify, 100) else M.apply_status_effect(/datum/status_effect/trance, 200, TRUE) @@ -282,4 +282,4 @@ M.confused += min(M.confused + 4, 20) M.dizziness += min(M.dizziness + 4, 20) M.drowsyness += min(M.drowsyness + 4, 20) - M.apply_status_effect(STATUS_EFFECT_PACIFY, 40) + M.apply_status_effect(/datum/status_effect/pacify, 40) 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/atmospherics/machinery/pipes/heat_exchange/junction.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm index b7fca049449c..ac7c85cb2fe8 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm @@ -34,10 +34,6 @@ icon_state = "pipe[nodes[1] ? "1" : "0"][nodes[2] ? "1" : "0"]-[piping_layer]" return ..() -/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer1 - piping_layer = 1 - icon_state = "pipe11-1" - /obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2 piping_layer = 2 icon_state = "pipe11-2" diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm index 61d909c7fc71..d452f11c11e7 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm @@ -37,10 +37,6 @@ if(nodes[i]) . += getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i])) -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer1 - piping_layer = 1 - icon_state = "manifold-1" - /obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2 piping_layer = 2 icon_state = "manifold-2" diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm index 57e9b6ea797b..40a049064148 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm @@ -35,10 +35,6 @@ if(nodes[i]) . += getpipeimage(icon, "pipe-[piping_layer]", get_dir(src, nodes[i])) -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer1 - piping_layer = 1 - icon_state = "manifold4w-1" - /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer2 piping_layer = 2 icon_state = "manifold4w-2" diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm index debbe9350c14..60379cb3a57e 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm @@ -28,10 +28,6 @@ icon_state = "pipe[nodes[1] ? "1" : "0"][nodes[2] ? "1" : "0"]-[piping_layer]" return ..() -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1 - piping_layer = 1 - icon_state = "pipe11-1" - /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2 piping_layer = 2 icon_state = "pipe11-2" 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..92f8a61ab4d7 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) @@ -307,6 +307,9 @@ outfit = /datum/outfit/job/assistant icon_state = "corpsegreytider" +/obj/effect/mob_spawn/human/corpse/assistant/husked + husk = TRUE + /obj/effect/mob_spawn/human/corpse/assistant/beesease_infection disease = /datum/disease/beesease @@ -326,6 +329,8 @@ outfit = /datum/outfit/job/cook icon_state = "corpsecook" +/obj/effect/mob_spawn/human/cook/husked + husk = TRUE /obj/effect/mob_spawn/human/doctor name = "Doctor" @@ -391,6 +396,9 @@ outfit = /datum/outfit/job/botanist icon_state = "corpsehuman" +/obj/effect/mob_spawn/human/botanist/husked + husk = TRUE + /obj/effect/mob_spawn/human/sec outfit = /datum/outfit/job/security icon_state = "corpsehuman" @@ -405,10 +413,14 @@ /obj/effect/mob_spawn/human/bartender name = "Space Bartender" + icon_state = "corpsebartender" id_job = "Bartender" id_access_list = list(ACCESS_BAR) outfit = /datum/outfit/spacebartender +/obj/effect/mob_spawn/human/bartender/husked + husk = TRUE + /obj/effect/mob_spawn/human/bartender/alive death = FALSE roundstart = FALSE @@ -465,8 +477,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/assistant.dm b/code/modules/cargo/bounties/assistant.dm index e7b13006a7a7..3ddc15dfa33b 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -139,12 +139,6 @@ wanted_types = list(/obj/item/reagent_containers/food/snacks/grown/poppy) include_subtypes = FALSE -/datum/bounty/item/assistant/shadyjims - name = "Shady Jim's" - description = "There's an irate officer at CentCom demanding that he receive a box of Shady Jim's cigarettes. Please ship one. He's starting to make threats." - reward = 500 - wanted_types = list(/obj/item/storage/fancy/cigarettes/cigpack_shadyjims) - /datum/bounty/item/assistant/potted_plants name = "Potted Plants" description = "Central Command is looking to commission a new BirdBoat-class station. You've been ordered to supply the potted plants." @@ -217,12 +211,6 @@ required_count = 5 wanted_types = list(/obj/item/toy/figure) -/datum/bounty/item/assistant/tail_whip - name = "Nine Tails whip" - description = "Commander Jackson is looking for a fine addition to her exotic weapons collection. She will reward you handsomely for either a Cat or Liz o' Nine Tails." - reward = 4000 - wanted_types = list(/obj/item/melee/chainofcommand/tailwhip) - /datum/bounty/item/assistant/dead_mice name = "Dead Mice" description = "Station 14 ran out of freeze-dried mice. Ship some fresh ones so their janitor doesn't go on strike." diff --git a/code/modules/cargo/bounties/medical.dm b/code/modules/cargo/bounties/medical.dm index 38f1fea99906..c0bcb1bd6f69 100644 --- a/code/modules/cargo/bounties/medical.dm +++ b/code/modules/cargo/bounties/medical.dm @@ -45,15 +45,3 @@ reward = 10000 required_count = 3 wanted_types = list(/obj/item/organ/tongue) - -/datum/bounty/item/medical/lizard_tail - name = "lizard Tail" - description = "The Wizard Federation has made off with Nanotrasen's supply of lizard tails. While CentCom is dealing with the wizards, can the station spare a tail of their own?" - reward = 3000 - wanted_types = list(/obj/item/organ/tail/lizard) - -/datum/bounty/item/medical/cat_tail - name = "Cat Tail" - description = "Central Command has run out of heavy duty pipe cleaners. Can you ship over a cat tail to help us out?" - reward = 3000 - wanted_types = list(/obj/item/organ/tail/cat) diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 1282d52b5a58..8af6b567fef5 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -15,7 +15,6 @@ unit_name = "riot shield" export_types = list(/obj/item/shield/riot) - /datum/export/gear/mask/breath cost = 2 unit_name = "breath mask" @@ -27,7 +26,6 @@ export_types = list(/obj/item/clothing/mask/gas) include_subtypes = FALSE - /datum/export/gear/space/helmet cost = 75 unit_name = "space helmet" @@ -51,7 +49,6 @@ unit_name = "Syndicate space suit" export_types = list(/obj/item/clothing/suit/space/syndicate) - /datum/export/gear/radhelmet cost = 50 unit_name = "radsuit hood" @@ -82,17 +79,6 @@ unit_name = "bomb suit" export_types = list(/obj/item/clothing/suit/bomb_suit) -/datum/export/gear/lizardboots - cost = 350 - unit_name = "lizard skin boots" - export_types = list(/obj/item/clothing/shoes/cowboy/lizard) - include_subtypes = FALSE - -/datum/export/gear/lizardmasterwork - cost = 1000 - unit_name = "Hugs-the-Feet lizard boots" - export_types = list(/obj/item/clothing/shoes/cowboy/lizard/masterwork) - /datum/export/gear/bilton cost = 2500 unit_name = "bilton wrangler boots" 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 953196411f9e..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." @@ -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/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index 4cdebc0bdcb4..5bce9871719a 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -213,3 +213,21 @@ for(var/i in 1 to 3) var/item = pick_n_take(L) new item(C) + +/datum/supply_pack/costumes_toys/rilena_merch + name = "RILENA Merchandise Crate" + desc = "A crate full of all the RILENA merch you could ever want. Except the offbrand stuff. That's not in here." + cost = 1000 //lots of loot + contains = list(/obj/item/toy/figure/tali, + /obj/item/toy/plush/rilena, + /obj/item/toy/plush/tali, + /obj/item/toy/plush/sharai, + /obj/item/toy/plush/xader, + /obj/item/toy/plush/mora, + /obj/item/poster/random_rilena, + /obj/item/poster/random_rilena, + /obj/item/poster/random_rilena, + /obj/item/clothing/suit/hooded/hoodie/rilena, + /obj/item/clothing/under/dress/rilena, + /obj/item/gun/energy/buster) + crate_name = "collectable merchandise crate" diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index 86e6f293908d..398233a64488 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -258,3 +258,41 @@ /obj/effect/spawner/lootdrop/ration) crate_name = "ration crate" crate_type = /obj/structure/closet/crate + +/datum/supply_pack/food/syrup + name = "Coffee Syrups Box" + desc = "A packaged box of various syrups, perfect for making your delicious coffee even more diabetic." + cost = 200 + contains = list( + /obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/caramel, + /obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/liqueur, + ) + crate_name = "coffee syrups box" + crate_type = /obj/structure/closet/crate + +/datum/supply_pack/food/coffeekit + name = "Coffee Equipment Crate" + desc = "A complete kit to setup your own cozy coffee shop, the coffeemaker is for some reason not included." + cost = 1000 + contains = list( + /obj/item/storage/box/coffeepack/robusta, + /obj/item/storage/box/coffeepack, + /obj/item/reagent_containers/food/drinks/bottle/coffeepot, + /obj/item/storage/box/coffee_condi_display, + /obj/item/reagent_containers/food/condiment/milk, + /obj/item/reagent_containers/food/condiment/soymilk, + /obj/item/reagent_containers/food/condiment/sugar, + /obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/caramel, //one extra syrup as a treat + ) + crate_name = "coffee equipment crate" + +/datum/supply_pack/food/coffeemaker + name = "Impressa Coffeemaker Crate" + desc = "An assembled Impressa model coffeemaker." + cost = 500 + contains = list( + /obj/machinery/coffeemaker/impressa, + /obj/item/reagent_containers/food/drinks/bottle/coffeepot, + ) + crate_name = "coffeemaker crate" + crate_type = /obj/structure/closet/crate 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/machinery.dm b/code/modules/cargo/packs/machinery.dm index 20f0af7a03a3..510ec7841417 100644 --- a/code/modules/cargo/packs/machinery.dm +++ b/code/modules/cargo/packs/machinery.dm @@ -326,3 +326,4 @@ contains = list(/obj/machinery/the_singularitygen/tesla) crate_name = "tesla generator crate" crate_type = /obj/structure/closet/crate/secure/engineering + 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 300cbc809cfc..334818c0e1f9 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -139,7 +139,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( //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/_Topic, hsrc, href, href_list))) + if(hsrc && hsrc != holder && DEFAULT_TRY_QUEUE_VERB(VERB_CALLBACK(src, PROC_REF(_Topic), hsrc, href, href_list))) return ..() //redirect to hsrc.Topic() @@ -347,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) @@ -954,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_general.dm b/code/modules/client/loadout/loadout_general.dm index 671c0efe9602..042315cc981f 100644 --- a/code/modules/client/loadout/loadout_general.dm +++ b/code/modules/client/loadout/loadout_general.dm @@ -42,6 +42,10 @@ display_name = "coffee mug" path = /obj/item/reagent_containers/food/drinks/britcup +/datum/gear/rilena_mug + display_name = "coffee mug, rilena" + path = /obj/item/reagent_containers/food/drinks/rilenacup + /datum/gear/lighter display_name = "cheap lighter" path = /obj/item/lighter/greyscale @@ -78,6 +82,10 @@ display_name = "laptop computer" path = /obj/item/modular_computer/laptop/preset/civilian +/datum/gear/rilena_laptop + display_name = "rilena laptop computer" + path = /obj/item/modular_computer/laptop/preset/civilian/rilena + /datum/gear/pen display_name = "pen, black" path = /obj/item/pen @@ -123,6 +131,14 @@ display_name = "toy, marketable knight plushie" path = /obj/item/toy/plush/knight +/datum/gear/ri + display_name = "toy, rilena ri plushie" + path = /obj/item/toy/plush/rilena + +/datum/gear/tali + display_name = "toy, rilena tali plushie" + path = /obj/item/toy/plush/tali + // Shiptest edit /datum/gear/amongus display_name = "toy, suspicious pill plushie" @@ -163,3 +179,8 @@ /datum/gear/surgical_mask display_name = "surgical mask" path = /obj/item/clothing/mask/surgical + +/datum/gear/rilena_poster + display_name = "poster, rilena" + path = /obj/item/poster/random_rilena + description = "A random poster of the RILENA series." diff --git a/code/modules/client/loadout/loadout_suit.dm b/code/modules/client/loadout/loadout_suit.dm index e2800a87e9e1..ec9fc916723e 100644 --- a/code/modules/client/loadout/loadout_suit.dm +++ b/code/modules/client/loadout/loadout_suit.dm @@ -73,6 +73,14 @@ display_name = "hoodie, gray" path = /obj/item/clothing/suit/hooded/hoodie/gray +/datum/gear/suit/jacket/hoodie_fbp + display_name = "hoodie, fbp kepori" + path = /obj/item/clothing/suit/hooded/hoodie/fbp + +/datum/gear/suit/jacket/hoodie_rilena + display_name = "hoodie, T4L1" + path = /obj/item/clothing/suit/hooded/hoodie/rilena + /datum/gear/suit/jacket/highvis display_name = "industrial jacket" path = /obj/item/clothing/suit/toggle/industrial diff --git a/code/modules/client/loadout/loadout_uniform.dm b/code/modules/client/loadout/loadout_uniform.dm index 4f88e6d1a905..1410bdb0fe4d 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 @@ -241,6 +233,10 @@ display_name = "dress-suitskirt, navy" path = /obj/item/clothing/under/suit/dresssuit/skirt +/datum/gear/uniform/dress/rilena + display_name = "red dress, Ri cosplay" + path = /obj/item/clothing/under/dress/rilena + //Premium /datum/gear/uniform/tacticool display_name = "tacticool turtleneck" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f1fe218b175b..e73a186087f3 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -16,6 +16,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/lastchangelog = "" //Saved changlog filesize to detect if there was a change var/ooccolor = "#c43b23" var/asaycolor = "#ff4500" //This won't change the color for current admins, only incoming ones. + /// If we spawn an ERT as an admin and choose to spawn as the briefing officer, we'll be given this outfit + var/brief_outfit = /datum/outfit/centcom/commander var/enable_tips = TRUE var/tip_delay = 500 //tip delay in milliseconds @@ -609,7 +611,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 +623,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 +632,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 @@ -1109,6 +1099,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Hide Prayers: [(chat_toggles & CHAT_PRAYER)?"Shown":"Hidden"]
    " dat += "Split Admin Tabs: [(toggles & SPLIT_ADMIN_TABS)?"Enabled":"Disabled"]
    " dat += "Ignore Being Summoned as Cult Ghost: [(toggles & ADMIN_IGNORE_CULT_GHOST)?"Don't Allow Being Summoned":"Allow Being Summoned"]
    " + dat += "Briefing Officer Outfit: [brief_outfit]
    " if(CONFIG_GET(flag/allow_admin_asaycolor)) dat += "
    " dat += "ASAY Color:     Change
    " @@ -1906,18 +1897,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 @@ -2005,6 +1984,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_asaycolor) asaycolor = new_asaycolor + if("briefoutfit") + var/list/valid_paths = list() + for(var/datum/outfit/outfit_path as anything in subtypesof(/datum/outfit)) + valid_paths[initial(outfit_path.name)] = outfit_path + var/new_outfit = input(user, "Choose your briefing officer outfit:", "Game Preference") as null|anything in valid_paths + new_outfit = valid_paths[new_outfit] + if(new_outfit) + brief_outfit = new_outfit + if("bag") var/new_backpack = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backpacklist if(new_backpack) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 26cea413adb3..7800a7b57f33 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\ @@ -161,6 +161,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //general preferences READ_FILE(S["asaycolor"], asaycolor) + READ_FILE(S["brief_outfit"], brief_outfit) READ_FILE(S["ooccolor"], ooccolor) READ_FILE(S["screentip_color"], screentip_color) READ_FILE(S["lastchangelog"], lastchangelog) @@ -265,6 +266,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car ghost_others = sanitize_inlist(ghost_others, GLOB.ghost_others_options, GHOST_OTHERS_DEFAULT_OPTION) menuoptions = SANITIZE_LIST(menuoptions) be_special = SANITIZE_LIST(be_special) + brief_outfit = sanitize_inlist(brief_outfit, subtypesof(/datum/outfit), null) show_credits = sanitize_integer(show_credits, 0, 1, initial(show_credits)) pda_style = sanitize_inlist(pda_style, GLOB.pda_styles, initial(pda_style)) pda_color = sanitize_hexcolor(pda_color, 6, TRUE, initial(pda_color)) @@ -304,6 +306,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //general preferences WRITE_FILE(S["asaycolor"], asaycolor) + WRITE_FILE(S["brief_outfit"], brief_outfit) WRITE_FILE(S["ooccolor"], ooccolor) WRITE_FILE(S["screentip_color"], screentip_color) WRITE_FILE(S["lastchangelog"], lastchangelog) @@ -503,52 +506,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/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index f4c2a5a27f4e..8245a3333e4c 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -148,11 +148,11 @@ . = ..() if(istype(I, /obj/item/clothing/glasses/eyepatch)) var/obj/item/clothing/glasses/eyepatch/old_patch = I - var/obj/item/clothing/glasses/blindfold/eyepatch/double_patch = new/obj/item/clothing/glasses/blindfold/eyepatch - double_patch.forceMove(user.drop_location()) + var/obj/item/clothing/glasses/blindfold/eyepatch/double_patch = new() to_chat(user, "You combine the eyepatches with a knot.") - old_patch.Destroy() - Destroy() + qdel(old_patch) + qdel(src) + user.put_in_hands(double_patch) /obj/item/clothing/glasses/monocle name = "monocle" diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index 807bfb217516..68f64cdd515e 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -4,7 +4,6 @@ icon_state = "boxing" item_state = "boxing" equip_delay_other = 60 - species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion supports_variations = VOX_VARIATION /obj/item/clothing/gloves/boxing/green 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/berets.dm b/code/modules/clothing/head/berets.dm index 2c6139e54169..7f83603e7f01 100644 --- a/code/modules/clothing/head/berets.dm +++ b/code/modules/clothing/head/berets.dm @@ -162,6 +162,11 @@ icon_state = "beret_cmo" armor = list("bio" = 30, "acid" = 20) +/obj/item/clothing/head/beret/cmo/cybersun + name = "medical director beret" + desc = "A burgundy-red beret with a silver cross. It smells very sterile." + icon_state = "meddirectorberet" + //Command /obj/item/clothing/head/beret/captain name = "captain beret" @@ -184,12 +189,6 @@ armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 15, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) strip_delay = 90 -/obj/item/clothing/head/beret/lt - name = "officer beret" - desc = "A showy lieutenants's beret. Smells of spilled coffee and crushed dreams." - icon_state = "beret_com" - armor = list("melee" = 40, "bullet" = 20, "laser" = 10, "energy" = 10, "rad" = 10, "bio" = 5, "rad" = 5, "fire" = 5, "rad" = 30) - // SolGov /obj/item/clothing/head/beret/solgov diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 2cd8c28602c8..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() @@ -559,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..9df87d4a5f51 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -122,7 +122,7 @@ /obj/item/clothing/head/rabbitears name = "rabbit ears" - desc = "Wearing these makes you look useless, and only good for your sex appeal." + desc = "A headband with a pair of faux rabbit ears." icon_state = "bunny" dynamic_hair_suffix = "" @@ -313,11 +313,6 @@ desc = "Welcome to the rice fields, motherfucker." icon_state = "rice_hat" -/obj/item/clothing/head/lizard - name = "lizardskin cloche hat" - desc = "How many lizards died to make this hat? Not enough." - icon_state = "lizard" - /obj/item/clothing/head/papersack name = "paper sack hat" desc = "A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness." @@ -386,7 +381,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) @@ -423,11 +418,6 @@ desc = "Signals that you follow the Jewish Halakha. Keeps the head covered and the soul extra-Orthodox." icon_state = "kippah" -/obj/item/clothing/head/medievaljewhat - name = "medieval Jewish hat" - desc = "A silly looking hat, intended to be placed on the heads of oppressed religious minorities." - icon_state = "medievaljewhat" - /obj/item/clothing/head/taqiyahwhite name = "white taqiyah" desc = "An extra-mustahabb way of showing your devotion to Allah." @@ -476,11 +466,11 @@ icon_state = "JackFrostHat" item_state = "JackFrostHat" -/obj/item/clothing/head/aclfcap +/obj/item/clothing/head/gorlexcap name = "2nd Battlegroup peaked cap" - desc = "A cap worn by officers of the Gorlex Marauders 2nd Battlegroup, or as they say, the ACLF." - icon_state = "aclfcap" - item_state = "aclfcap" + desc = "A cap worn by officers of the Gorlex Marauders 2nd Battlegroup." + icon_state = "gorlexcap" + item_state = "gorlexcap" flags_inv = 0 armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 35, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) strip_delay = 60 diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 94cd299b3cc0..f0ef95aca729 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -182,9 +182,6 @@ if(ishuman(user)) add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY) -/obj/item/clothing/head/kitty/genuine - desc = "A pair of kitty ears. A tag on the inside says \"Hand made from real cats.\"" - /obj/item/clothing/head/hardhat/reindeer name = "novelty reindeer hat" desc = "Some fake antlers and a very fake red nose." @@ -323,7 +320,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/outfits/ert/frontiersmen_ert.dm b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm new file mode 100644 index 000000000000..db934aaa9761 --- /dev/null +++ b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm @@ -0,0 +1,60 @@ +/datum/outfit/centcom/ert/frontiersmen + name = "ERT - Frontiersman Basic" + + head = /obj/item/clothing/head/beret/sec/frontier + mask = /obj/item/clothing/mask/gas/sechailer/minutemen + suit = /obj/item/clothing/suit/armor/vest/bulletproof/frontier + suit_store = /obj/item/gun/ballistic/rifle/boltaction + uniform = /obj/item/clothing/under/rank/security/officer/frontier + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/color/black + ears = /obj/item/radio/headset/pirate/alt + back = /obj/item/storage/backpack + belt = null + l_pocket = /obj/item/flashlight/seclite + r_pocket = /obj/item/tank/internals/emergency_oxygen/double + + backpack_contents = list(/obj/item/ammo_box/a762=5, /obj/item/grenade/frag=1) + + id_role = "Grunt" + +/datum/outfit/centcom/ert/frontiersmen/leader + name = "ERT - Frontiersman Officer" + + uniform = /obj/item/clothing/under/rank/security/officer/frontier/officer + head = /obj/item/clothing/head/beret/sec/frontier/officer + ears = /obj/item/radio/headset/pirate/alt/captain + back = /obj/item/storage/backpack/satchel/leather + suit = /obj/item/clothing/suit/armor/frontier + suit_store = /obj/item/gun/ballistic/revolver/nagant + belt = /obj/item/storage/belt/military/assault + + backpack_contents = list(/obj/item/ammo_box/n762_clip=3, /obj/item/binoculars=1, /obj/item/kitchen/knife/combat/survival) + + id_role = "Officer" + +/datum/outfit/centcom/ert/frontiersmen/medic + name = "ERT - Frontiersman Medic" + + back = /obj/item/storage/backpack/medic + mask = /obj/item/clothing/mask/surgical + gloves = /obj/item/clothing/gloves/color/latex/nitrile + belt = /obj/item/storage/belt/medical/surgery + suit = null + suit_store = null + + backpack_contents = list(/obj/item/storage/firstaid/medical=1, /obj/item/reagent_containers/hypospray/medipen/stimpack=3) + + id_role = "Stretcher-Bearer" + +/datum/outfit/centcom/ert/frontiersmen/engineer + name = "ERT - Frontiersman Engineer" + + back = /obj/item/storage/backpack/industrial + belt = /obj/item/storage/belt/utility/full + head = /obj/item/clothing/head/hardhat/weldhat + suit_store = null + + backpack_contents = list(/obj/item/grenade/c4=3, /obj/item/crowbar/large=1) + + id_role = "Sapper" diff --git a/code/modules/clothing/outfits/ert/indie_ert.dm b/code/modules/clothing/outfits/ert/indie_ert.dm new file mode 100644 index 000000000000..18b611d1183d --- /dev/null +++ b/code/modules/clothing/outfits/ert/indie_ert.dm @@ -0,0 +1,88 @@ +/datum/outfit/centcom/ert/independent + name = "ERT - Independent Security Officer" + + head = /obj/item/clothing/head/helmet/sec + ears = /obj/item/radio/headset/alt + mask = null + uniform = /obj/item/clothing/under/rank/security/officer + shoes = /obj/item/clothing/shoes/combat/swat + gloves = /obj/item/clothing/gloves/color/black + suit = /obj/item/clothing/suit/armor/vest + back = /obj/item/storage/backpack/security + belt = /obj/item/storage/belt/security/full + id = /obj/item/card/id + + id_role = "Security Officer" + +/datum/outfit/centcom/ert/independent/emt + name = "ERT - Independent Paramedic" + + head = /obj/item/clothing/head/soft/paramedic + mask = null + uniform = /obj/item/clothing/under/rank/medical/paramedic + shoes = /obj/item/clothing/shoes/sneakers/white + gloves = /obj/item/clothing/gloves/color/latex + ears = /obj/item/radio/headset + suit = /obj/item/clothing/suit/toggle/labcoat/paramedic + back = /obj/item/storage/backpack/medic + belt = /obj/item/storage/belt/medical/webbing/paramedic + + id_role = "Emergency Medical Technician" + +/datum/outfit/centcom/ert/independent/firefighter + name = "ERT - Independent Firefighter (Standard)" + + head = /obj/item/clothing/head/hardhat/red + uniform = /obj/item/clothing/under/utility + suit = /obj/item/clothing/suit/fire/firefighter + suit_store = /obj/item/extinguisher + glasses = /obj/item/clothing/glasses/heat + mask = /obj/item/clothing/mask/breath + shoes = /obj/item/clothing/shoes/workboots + gloves = /obj/item/clothing/gloves/color/black + back = /obj/item/tank/internals/oxygen/red + + l_pocket = /obj/item/crowbar/red + r_pocket = /obj/item/radio + + id_role = "Firefighter" + +/datum/outfit/centcom/ert/independent/firefighter/medic + name = "ERT - Independent Firefighter (Medic)" + + mask = /obj/item/clothing/mask/breath/medical + back = /obj/item/storage/backpack/fireproof + gloves = /obj/item/clothing/gloves/color/latex/nitrile/evil + glasses = /obj/item/clothing/glasses/hud/health + suit_store = /obj/item/tank/internals/emergency_oxygen + + l_pocket = /obj/item/extinguisher/mini + + backpack_contents = list(/obj/item/storage/firstaid/fire=1, /obj/item/storage/firstaid/o2=1, /obj/item/radio=1) + + id_role = "Emergency Medical Technician" + +/datum/outfit/centcom/ert/independent/firefighter/leader + name = "ERT - Independent Firefighter (Group Captain)" + + back = /obj/item/fireaxe + suit = /obj/item/clothing/suit/space/hardsuit/engine + suit_store = /obj/item/tank/internals/oxygen/red + head = null + belt = /obj/item/storage/belt/utility/atmostech + gloves = /obj/item/clothing/gloves/color/yellow + + id_role = "Group Captain" + +/datum/outfit/centcom/ert/independent/technician + name = "ERT - Independent Technician" + + head = /obj/item/clothing/head/hardhat + belt = /obj/item/storage/belt/utility/full/engi + suit = /obj/item/clothing/suit/toggle/hazard + shoes = /obj/item/clothing/shoes/workboots + back = /obj/item/storage/backpack/industrial + l_pocket = /obj/item/radio + r_pocket = /obj/item/analyzer + + box = /obj/item/storage/box/survival/engineer diff --git a/code/modules/clothing/outfits/ert/inteq_ert.dm b/code/modules/clothing/outfits/ert/inteq_ert.dm new file mode 100644 index 000000000000..05d4f22eb69a --- /dev/null +++ b/code/modules/clothing/outfits/ert/inteq_ert.dm @@ -0,0 +1,53 @@ +/datum/outfit/centcom/ert/inteq + name = "ERT - Inteq Rifleman" + + mask = /obj/item/clothing/mask/gas/sechailer/inteq + glasses = /obj/item/clothing/glasses/hud/security/sunglasses/inteq + uniform = /obj/item/clothing/under/syndicate/inteq + suit = /obj/item/clothing/suit/space/hardsuit/syndi/inteq + suit_store = /obj/item/gun/ballistic/automatic/assault/ak47/inteq + gloves = /obj/item/clothing/gloves/combat + ears = /obj/item/radio/headset/inteq/alt + id = /obj/item/card/id + belt = /obj/item/storage/belt/security/webbing/inteq/ak47 + back = /obj/item/storage/backpack/fireproof + + l_pocket = /obj/item/kitchen/knife/combat + r_pocket = /obj/item/flashlight/seclite + + backpack_contents = list(/obj/item/radio=1) + + id_role = "Enforcer" + +/datum/outfit/centcom/ert/inteq/shotgun + name = "ERT - Inteq Shotgunner" + + suit_store = /obj/item/gun/ballistic/shotgun/automatic/combat/compact + belt = /obj/item/storage/belt/security/webbing/inteq/alt + + backpack_contents = list(/obj/item/storage/box/lethalshot=2, /obj/item/radio=1) + + id_role = "Enforcer" + +/datum/outfit/centcom/ert/inteq/medic + name = "ERT - Inteq Corpsman" + + uniform = /obj/item/clothing/under/syndicate/inteq/corpsman + belt = /obj/item/storage/belt/medical/webbing/paramedic + suit_store = null + + l_pocket = /obj/item/healthanalyzer + + id_role = "Corpsman" + + backpack_contents = list(/obj/item/storage/firstaid/medical=1, /obj/item/radio=1) + +/datum/outfit/centcom/ert/inteq/leader + name = "ERT - Inteq Vanguard" + + ears = /obj/item/radio/headset/inteq/alt/captain + back = /obj/item/storage/backpack/messenger/inteq + suit_store = /obj/item/gun/ballistic/automatic/pistol/commander/inteq + id = /obj/item/card/id/silver + + id_role = "Vanguard" diff --git a/code/modules/clothing/outfits/ert/minutemen_ert.dm b/code/modules/clothing/outfits/ert/minutemen_ert.dm new file mode 100644 index 000000000000..6ec68e0799ca --- /dev/null +++ b/code/modules/clothing/outfits/ert/minutemen_ert.dm @@ -0,0 +1,126 @@ +/datum/outfit/centcom/ert/minutemen + name = "ERT - Minutemen Basic" + + head = /obj/item/clothing/head/helmet/bulletproof/minutemen + uniform = /obj/item/clothing/under/rank/security/officer/minutemen + mask = /obj/item/clothing/mask/gas/sechailer/minutemen + ears = /obj/item/radio/headset/minutemen/alt + back = /obj/item/storage/backpack/security/cmm + suit = /obj/item/clothing/suit/armor/vest/bulletproof + id = /obj/item/card/id + r_pocket = /obj/item/kitchen/knife/combat + l_pocket = /obj/item/flashlight/seclite + + box = /obj/item/storage/box/survival/security + + id_role = "Minutemen" + +/datum/outfit/centcom/ert/minutemen/leader + name = "ERT - Minutemen Basic Sergeant" + + ears = /obj/item/radio/headset/minutemen/alt/captain + back = /obj/item/storage/backpack/satchel/sec/cmm + + id_role = "Sergeant" + +/datum/outfit/centcom/ert/minutemen/bard + name = "ERT - Minutemen BARD" + + suit = /obj/item/clothing/suit/armor/vest/marine/medium + suit_store = /obj/item/gun/ballistic/automatic/smg/cm5 + head = /obj/item/clothing/head/helmet/riot/minutemen + belt = /obj/item/storage/belt/military/minutemen/cm5 + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + r_pocket = /obj/item/grenade/smokebomb + l_pocket = /obj/item/extinguisher/mini + r_hand = /obj/item/kitchen/knife/combat + l_hand = /obj/item/reagent_containers/hypospray/medipen/stimpack + + backpack_contents = list( + /obj/item/flashlight/seclite = 1, + /obj/item/flashlight/flare = 2 + ) + + id_role = "Minutemen" + +/datum/outfit/centcom/ert/minutemen/bard/leader + name = "ERT - Minutemen BARD Sergeant" + + belt = /obj/item/storage/belt/military/assault/minutemen + uniform = /obj/item/clothing/under/rank/command/minutemen + suit = /obj/item/clothing/suit/armor/vest/marine/heavy + suit_store = /obj/item/gun/ballistic/automatic/assault/p16/minutemen + glasses = /obj/item/clothing/glasses/hud/security/night + r_pocket = /obj/item/grenade/c4 + l_pocket = /obj/item/reagent_containers/hypospray/medipen/stimpack + + backpack_contents = list( + /obj/item/flashlight/flare = 3, + /obj/item/grenade/c4 = 2, + /obj/item/flashlight/seclite = 1 + ) + + id_role = "Sergeant" + +/datum/outfit/centcom/ert/minutemen/riot + name = "ERT - Minutemen Riot Officer" + + suit = /obj/item/clothing/suit/armor/riot/minutemen + head = /obj/item/clothing/head/helmet/riot/minutemen + l_hand = /obj/item/melee/baton/loaded + back = /obj/item/shield/riot + belt = /obj/item/gun/ballistic/automatic/smg/cm5/no_mag + r_pocket = /obj/item/ammo_box/magazine/smgm9mm/rubber + l_pocket = /obj/item/ammo_box/magazine/smgm9mm/rubber + + backpack_contents = null + box = null + + id_role = "Minutemen" + +/datum/outfit/centcom/ert/minutemen/riot/leader + name = "ERT - Minutemen Riot Officer Sergeant" + + ears = /obj/item/radio/headset/minutemen/alt/captain + back = /obj/item/shield/riot/flash + + id_role = "Sergeant" + +/datum/outfit/centcom/ert/minutemen/inspector + name = "ERT - Minutemen GOLD Inspector" + + head = null + mask = null + belt = /obj/item/clipboard + glasses = /obj/item/clothing/glasses/sunglasses + uniform = /obj/item/clothing/under/rank/command/minutemen + suit = /obj/item/clothing/suit/toggle/lawyer/minutemen + ears = /obj/item/radio/headset/minutemen/alt/captain + back = /obj/item/storage/backpack/satchel/leather + id = /obj/item/card/id/silver + + l_pocket = null + r_pocket = null + + id_role = "Lieutenant" + +/datum/outfit/centcom/ert/minutemen/piratehunters + name = "ERT - Minutemen Pirate Hunter" + + head = null + suit = /obj/item/clothing/suit/space/hardsuit/security/independent/minutemen + belt = /obj/item/storage/belt/military/minutemen/p16 + suit_store = /obj/item/gun/ballistic/automatic/assault/p16/minutemen + + id_role = "Minutemen" + +/datum/outfit/centcom/ert/minutemen/piratehunters/leader + name = "ERT - Minutemen Pirate Hunter Leader" + + uniform = /obj/item/clothing/under/rank/command/minutemen + ears = /obj/item/radio/headset/minutemen/alt/captain + belt = /obj/item/storage/belt/military/minutemen/gal + suit_store = /obj/item/gun/ballistic/automatic/gal + backpack_contents = list(/obj/item/ammo_box/magazine/gal=4) + + id_role = "Sergeant" diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert/nanotrasen_ert.dm similarity index 72% rename from code/modules/clothing/outfits/ert.dm rename to code/modules/clothing/outfits/ert/nanotrasen_ert.dm index e3f90d1070b5..6fb533504715 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert/nanotrasen_ert.dm @@ -1,3 +1,4 @@ +// this is where the base ERT outfit goes /datum/outfit/centcom/ert name = "ERT Common" @@ -6,19 +7,18 @@ shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat ears = /obj/item/radio/headset/headset_cent/alt + // determines what role goes on the ID of an ert member. cheap workaround for implementing it into the ert datum + var/id_role = "Emergency Response Officer" -/datum/outfit/centcom/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) +/datum/outfit/centcom/ert/post_equip(mob/living/carbon/human/human, visualsOnly = FALSE) if(visualsOnly) return - var/obj/item/radio/R = H.ears - R.set_frequency(FREQ_CENTCOM) - R.freqlock = TRUE - - var/obj/item/card/id/W = H.wear_id - if(W) - W.registered_name = H.real_name - W.update_label() + var/obj/item/card/id/id = human.wear_id + if(id) + id.registered_name = human.real_name + id.assignment = id_role + id.update_label() ..() /datum/outfit/centcom/ert/commander @@ -26,14 +26,16 @@ id = /obj/item/card/id/ert suit = /obj/item/clothing/suit/space/hardsuit/ert + suit_store = /obj/item/gun/energy/e_gun/hades glasses = /obj/item/clothing/glasses/hud/security/sunglasses back = /obj/item/storage/backpack/ert belt = /obj/item/storage/belt/security/full backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ - /obj/item/melee/baton/loaded=1,\ - /obj/item/gun/energy/e_gun=1) + /obj/item/melee/baton/loaded=1) l_pocket = /obj/item/switchblade + id_role = "Emergency Response Team Commander" + /datum/outfit/centcom/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -58,13 +60,13 @@ id = /obj/item/card/id/ert/security suit = /obj/item/clothing/suit/space/hardsuit/ert/sec + suit_store = /obj/item/gun/energy/e_gun/hades glasses = /obj/item/clothing/glasses/hud/security/sunglasses gloves = /obj/item/clothing/gloves/tackler/combat/insulated back = /obj/item/storage/backpack/ert/security belt = /obj/item/storage/belt/security/full backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ - /obj/item/storage/box/handcuffs=1,\ - /obj/item/gun/energy/e_gun/stun=1,\ + /obj/item/storage/box/handcuffs=1, /obj/item/melee/baton/loaded=1) /datum/outfit/centcom/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -80,28 +82,29 @@ /datum/outfit/centcom/ert/security/alert name = "ERT Security - High Alert" + suit_store = /obj/item/gun/energy/pulse/carbine/loyalpin mask = /obj/item/clothing/mask/gas/sechailer/swat backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/storage/box/handcuffs=1,\ - /obj/item/melee/baton/loaded=1,\ - /obj/item/gun/energy/pulse/carbine/loyalpin=1) - + /obj/item/melee/baton/loaded=1) /datum/outfit/centcom/ert/medic name = "ERT Medic" id = /obj/item/card/id/ert/medical suit = /obj/item/clothing/suit/space/hardsuit/ert/med + suit_store = /obj/item/gun/energy/e_gun/hades glasses = /obj/item/clothing/glasses/hud/health back = /obj/item/storage/backpack/ert/medical belt = /obj/item/storage/belt/medical r_hand = /obj/item/storage/firstaid/regular backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ - /obj/item/gun/energy/e_gun=1,\ /obj/item/reagent_containers/hypospray/combat=1,\ /obj/item/gun/medbeam=1) + id_role = "Medical Response Officer" + /datum/outfit/centcom/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -127,6 +130,7 @@ id = /obj/item/card/id/ert/engineer suit = /obj/item/clothing/suit/space/hardsuit/ert/engi + suit_store = /obj/item/gun/energy/e_gun/hades glasses = /obj/item/clothing/glasses/meson/engine back = /obj/item/storage/backpack/ert/engineer belt = /obj/item/storage/belt/utility/full @@ -134,9 +138,10 @@ r_hand = /obj/item/storage/firstaid/regular backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ - /obj/item/gun/energy/e_gun=1,\ /obj/item/construction/rcd/loaded=1) + id_role = "Engineering Response Officer" + /datum/outfit/centcom/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -156,6 +161,7 @@ /obj/item/gun/energy/pulse/pistol/loyalpin=1,\ /obj/item/construction/rcd/combat=1) +// official /datum/outfit/centcom/centcom_official name = "CentCom Official" @@ -190,67 +196,6 @@ W.update_label() ..() -/datum/outfit/centcom/ert/commander/inquisitor - name = "Inquisition Commander" - r_hand = /obj/item/nullrod/scythe/talking/chainsword - suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal - backpack_contents = list(/obj/item/storage/box/survival/engineer=1, - /obj/item/gun/energy/e_gun=1) - -/datum/outfit/centcom/ert/security/inquisitor - name = "Inquisition Security" - - suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor - - backpack_contents = list(/obj/item/storage/box/survival/engineer=1, - /obj/item/storage/box/handcuffs=1, - /obj/item/gun/energy/e_gun/stun=1, - /obj/item/melee/baton/loaded=1, - /obj/item/construction/rcd/loaded=1) - -/datum/outfit/centcom/ert/medic/inquisitor - name = "Inquisition Medic" - - suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor - - backpack_contents = list(/obj/item/storage/box/survival/engineer=1, - /obj/item/melee/baton/loaded=1, - /obj/item/gun/energy/e_gun=1, - /obj/item/reagent_containers/hypospray/combat=1, - /obj/item/reagent_containers/hypospray/combat/heresypurge=1, - /obj/item/gun/medbeam=1) - -/datum/outfit/centcom/ert/chaplain - name = "ERT Chaplain" - - suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor // Chap role always gets this suit - id = /obj/item/card/id/ert/chaplain - glasses = /obj/item/clothing/glasses/hud/health - back = /obj/item/storage/backpack/cultpack - belt = /obj/item/storage/belt/soulstone - backpack_contents = list(/obj/item/storage/box/survival/engineer=1, - /obj/item/nullrod=1, - /obj/item/gun/energy/e_gun=1, - ) - -/datum/outfit/centcom/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - ..() - if(visualsOnly) - return - var/obj/item/radio/R = H.ears - R.keyslot = new /obj/item/encryptionkey/headset_com - R.recalculateChannels() - -/datum/outfit/centcom/ert/chaplain/inquisitor - name = "Inquisition Chaplain" - - belt = /obj/item/storage/belt/soulstone/full/chappy - backpack_contents = list(/obj/item/storage/box/survival/engineer=1, - /obj/item/grenade/chem_grenade/holy=1, - /obj/item/nullrod=1, - /obj/item/gun/energy/e_gun=1, - ) - /datum/outfit/centcom/ert/janitor name = "ERT Janitor" @@ -269,6 +214,8 @@ /obj/item/reagent_containers/glass/bucket=1,\ /obj/item/grenade/clusterbuster/cleaner=1) + id_role = "Janitorial Response Officer" + /datum/outfit/centcom/ert/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -289,35 +236,6 @@ /obj/item/melee/baton/loaded=1,\ /obj/item/grenade/clusterbuster/cleaner=3) -/datum/outfit/centcom/ert/clown - name = "ERT Clown" - - suit = /obj/item/clothing/suit/space/hardsuit/ert/clown - mask = /obj/item/clothing/mask/gas/clown_hat - id = /obj/item/card/id/ert/clown - glasses = /obj/item/clothing/glasses/godeye - back = /obj/item/storage/backpack/ert/clown - belt = /obj/item/storage/belt/champion - shoes = /obj/item/clothing/shoes/clown_shoes/combat - r_pocket = /obj/item/bikehorn/golden - l_pocket = /obj/item/reagent_containers/food/snacks/grown/banana - backpack_contents = list(/obj/item/storage/box/hug/survival=1,\ - /obj/item/melee/transforming/energy/sword/bananium=1,\ - /obj/item/shield/energy/bananium=1,\ - /obj/item/gun/ballistic/revolver/reverse=1) - -/datum/outfit/centcom/ert/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - ..() - if(visualsOnly) - return - var/obj/item/radio/R = H.ears - R.keyslot = new /obj/item/encryptionkey/headset_com - R.recalculateChannels() - ADD_TRAIT(H, TRAIT_NAIVE, INNATE_TRAIT) - H.dna.add_mutation(CLOWNMUT) - for(var/datum/mutation/human/clumsy/M in H.dna.mutations) - M.mutadone_proof = TRUE - /datum/outfit/centcom/centcom_intern name = "CentCom Intern" @@ -333,6 +251,12 @@ r_pocket = /obj/item/ammo_box/a762 id = /obj/item/card/id/centcom backpack_contents = list(/obj/item/storage/box/survival = 1) +/datum/outfit/centcom/centcom_intern/unarmed + name = "CentCom Intern (Unarmed)" + belt = null + l_hand = null + l_pocket = null + r_pocket = null /datum/outfit/centcom/centcom_intern/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) @@ -353,6 +277,14 @@ r_hand = /obj/item/megaphone head = /obj/item/clothing/head/intern +/datum/outfit/centcom/centcom_intern/leader/unarmed // i'll be nice and let the leader keep their baton and vest + name = "CentCom Head Intern (Unarmed)" + suit_store = null + l_pocket = null + r_pocket = null + +// Marine + /datum/outfit/centcom/ert/marine name = "Marine Commander" @@ -372,6 +304,8 @@ mask = /obj/item/clothing/mask/gas/sechailer head = /obj/item/clothing/head/helmet/marine + id_role = "Emergency Response Team Commander" + /datum/outfit/centcom/ert/marine/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -419,6 +353,8 @@ belt = /obj/item/storage/belt/medical/paramedic glasses = /obj/item/clothing/glasses/hud/health/sunglasses + id_role = "Medical Response Officer" + /datum/outfit/centcom/ert/marine/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -446,6 +382,8 @@ belt = /obj/item/storage/belt/utility/full/ert glasses = /obj/item/clothing/glasses/hud/diagnostic/sunglasses + id_role = "Engineering Response Officer" + /datum/outfit/centcom/ert/marine/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -455,3 +393,88 @@ var/obj/item/radio/headset = H.ears headset.keyslot = new /obj/item/encryptionkey/headset_com headset.recalculateChannels() + +// Loss Prevention + +/datum/outfit/centcom/ert/lp + name = "ERT - Loss Prevention Security Specialist" + + head = null + implants = list(/obj/item/implant/mindshield) + ears = /obj/item/radio/headset/nanotrasen/alt + id = /obj/item/card/id/lpsec + suit_store = /obj/item/gun/energy/laser/scatter/shotty + belt = /obj/item/storage/belt/security/full + glasses = /obj/item/clothing/glasses/sunglasses + gloves = /obj/item/clothing/gloves/tackler/combat + suit = /obj/item/clothing/suit/space/hardsuit/ert/lp/sec + uniform = /obj/item/clothing/under/rank/security/head_of_security/nt/lp + shoes = /obj/item/clothing/shoes/jackboots + back = /obj/item/storage/backpack/ert/security + + box = /obj/item/storage/box/survival/security + l_pocket = /obj/item/restraints/handcuffs + r_pocket = /obj/item/kitchen/knife/combat + + backpack_contents = list(/obj/item/radio=1, /obj/item/stock_parts/cell/gun/upgraded=2, /obj/item/screwdriver=1) + + id_role = "Security Specialist" + +/datum/outfit/centcom/ert/lp/medic + name = "ERT - Loss Prevention Medical Specialist" + + head = null + uniform = /obj/item/clothing/under/rank/medical/paramedic/lp + suit = /obj/item/clothing/suit/space/hardsuit/ert/lp/med + id = /obj/item/card/id/lpmed + gloves = /obj/item/clothing/gloves/color/latex/nitrile + back = /obj/item/storage/backpack/ert/medical + belt = /obj/item/storage/belt/medical/surgery + + box = /obj/item/storage/box/survival/medical + l_pocket = /obj/item/healthanalyzer + r_pocket = /obj/item/reagent_containers/hypospray/medipen/atropine + + backpack_contents = list(/obj/item/storage/firstaid/medical=1, /obj/item/radio=1) + + id_role = "Medical Specialist" + +/datum/outfit/centcom/ert/lp/engineer + name = "ERT - Loss Prevention Engineering Specialist" + + head = null + uniform = /obj/item/clothing/under/rank/engineering/engineer/nt/lp + suit = /obj/item/clothing/suit/space/hardsuit/ert/lp/engi + id = /obj/item/card/id/lpengie + belt = /obj/item/storage/belt/utility/full + gloves = /obj/item/clothing/gloves/combat + glasses = /obj/item/clothing/glasses/welding + back = /obj/item/storage/backpack/ert/engineer + + box = /obj/item/storage/box/survival/engineer + l_pocket = /obj/item/extinguisher/mini + r_pocket = /obj/item/wrench/combat + + id_role = "Engineering Specialist" + + backpack_contents = list(/obj/item/stack/sheet/metal/fifty=1, /obj/item/stack/sheet/glass/fifty=1, /obj/item/radio=1) + +/datum/outfit/centcom/ert/lp/lieutenant + name = "ERT - Loss Prevention Lieutenant" + + head = null + ears = /obj/item/radio/headset/nanotrasen/alt/captain + id = /obj/item/card/id/lplieu + belt = /obj/item/storage/belt/military/army + gloves = /obj/item/clothing/gloves/color/black + uniform = /obj/item/clothing/under/rank/security/warden/lp + suit = /obj/item/clothing/suit/space/hardsuit/ert/lp + shoes = /obj/item/clothing/shoes/combat + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + back = /obj/item/storage/backpack/ert + + box = /obj/item/storage/box/survival/radio + l_pocket = /obj/item/megaphone/command + r_pocket = /obj/item/binoculars + + id_role = "Lieutenant" diff --git a/code/modules/clothing/outfits/ert/solgov_ert.dm b/code/modules/clothing/outfits/ert/solgov_ert.dm new file mode 100644 index 000000000000..fbae8101728d --- /dev/null +++ b/code/modules/clothing/outfits/ert/solgov_ert.dm @@ -0,0 +1,38 @@ +/datum/outfit/centcom/ert/solgov + name = "ERT - SolGov Sonnensöldner" + + id = /obj/item/card/id/solgov + uniform = /obj/item/clothing/under/solgov + suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov + mask = null + ears = /obj/item/radio/headset/solgov/alt + gloves = /obj/item/clothing/gloves/combat + head = /obj/item/clothing/head/solgov/sonnensoldner + shoes = /obj/item/clothing/shoes/workboots + back = /obj/item/storage/backpack + + box = /obj/item/storage/box/survival + l_hand = /obj/item/energyhalberd + + id_role = "Sonnensöldner" + +/datum/outfit/centcom/ert/solgov/inspector + name = "ERT - SolGov Inspector" + + uniform = /obj/item/clothing/under/solgov/formal + belt = /obj/item/clipboard + ears = /obj/item/radio/headset/solgov/captain + back = /obj/item/storage/backpack/satchel/leather + head = /obj/item/clothing/head/solgov + gloves = /obj/item/clothing/gloves/color/white + shoes = /obj/item/clothing/shoes/laceup + suit = null + suit_store = null + mask = null + glasses = null + + l_hand = null + + backpack_contents = list(/obj/item/stamp/solgov=1) + + id_role = "Inspector" diff --git a/code/modules/clothing/outfits/ert/syndicate_ert.dm b/code/modules/clothing/outfits/ert/syndicate_ert.dm new file mode 100644 index 000000000000..5ec318f41d24 --- /dev/null +++ b/code/modules/clothing/outfits/ert/syndicate_ert.dm @@ -0,0 +1,164 @@ +/datum/outfit/centcom/ert/syndicate + name = "ERT - Syndicate Basic" + + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/armor/vest/syndie + suit_store = /obj/item/gun/ballistic/automatic/smg/c20r + shoes = /obj/item/clothing/shoes/combat + ears = /obj/item/radio/headset/syndicate/alt + gloves = /obj/item/clothing/gloves/color/black + id = /obj/item/card/id/syndicate_command/crew_id + mask = /obj/item/clothing/mask/gas/sechailer/minutemen + head = /obj/item/clothing/head/helmet/operator + back = /obj/item/storage/backpack/fireproof + belt = /obj/item/storage/belt/military/c20r + + r_pocket = /obj/item/kitchen/knife/combat + l_pocket = /obj/item/grenade/frag + + implants = list(/obj/item/implant/weapons_auth) + backpack_contents = list(/obj/item/radio=1) + box = /obj/item/storage/box/survival/syndie + + id_role = "Squaddie" + +/datum/outfit/centcom/ert/syndicate/leader + name = "ERT - Syndicate Basic Leader" + + head = /obj/item/clothing/head/HoS/beret/syndicate + ears = /obj/item/radio/headset/syndicate/captain + + backpack_contents = list(/obj/item/gun/ballistic/automatic/pistol=1, /obj/item/ammo_box/magazine/m10mm=2, /obj/item/radio=1) + + id_role = "Sergeant" + +// gorlex loyalist/2nd battlegroup + +/datum/outfit/centcom/ert/syndicate/gorlex + name = "ERT - Syndicate Gorlex Loyalist Trooper" + + head = /obj/item/clothing/head/helmet/swat + uniform = /obj/item/clothing/under/syndicate/combat + suit = /obj/item/clothing/suit/armor/vest/bulletproof + belt = /obj/item/storage/belt/military/assault/m90 + back = /obj/item/storage/backpack/security + suit_store = /obj/item/gun/ballistic/automatic/smg/m90 + + id_role = "Trooper" + +/datum/outfit/centcom/ert/syndicate/gorlex/pointman + name = "ERT - Syndicate Gorlex Loyalist Pointman" + + suit_store = /obj/item/gun/ballistic/shotgun/bulldog + belt = /obj/item/storage/belt/security/webbing/bulldog + +/datum/outfit/centcom/ert/syndicate/gorlex/medic + name = "ERT - Syndicate Gorlex Loyalist Medic" + + head = /obj/item/clothing/head/soft/black + mask = null + suit = /obj/item/clothing/suit/armor/vest/alt + belt = /obj/item/storage/belt/medical/webbing/paramedic + glasses = /obj/item/clothing/glasses/hud/health/sunglasses + gloves = /obj/item/clothing/gloves/color/latex/nitrile/evil + suit_store = /obj/item/gun/ballistic/automatic/pistol + + l_pocket = /obj/item/radio + + backpack_contents = list(/obj/item/ammo_box/magazine/m10mm=2, /obj/item/storage/firstaid/medical=1, /obj/item/defibrillator/compact/combat/loaded=1) + + id_role = "Medic" + +/datum/outfit/centcom/ert/syndicate/gorlex/sniper + name = "ERT - Syndicate Gorlex Loyalist Sniper" + + head = /obj/item/clothing/head/beret/black + back = /obj/item/storage/backpack/messenger/sec + glasses = /obj/item/clothing/glasses/night + gloves = /obj/item/clothing/gloves/fingerless + suit = /obj/item/clothing/suit/armor/vest + belt = /obj/item/storage/belt/security + suit_store = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate + + r_pocket = /obj/item/kitchen/knife/combat/survival + l_pocket = /obj/item/binoculars + + backpack_contents = list(/obj/item/ammo_box/magazine/sniper_rounds=2, /obj/item/radio=1) + + id_role = "Marksman" + +/datum/outfit/centcom/ert/syndicate/gorlex/leader + name = "ERT - Syndicate Gorlex Loyalist Sergeant" + + uniform = /obj/item/clothing/under/syndicate/gorlex + head = /obj/item/clothing/head/HoS/beret/syndicate + back = /obj/item/storage/backpack/satchel/sec + mask = /obj/item/clothing/mask/gas/sechailer + glasses = /obj/item/clothing/glasses/hud/security/night + gloves = /obj/item/clothing/gloves/tackler/combat + + l_pocket = /obj/item/megaphone/sec + + id_role = "Sergeant" + +// commandos + +/datum/outfit/centcom/ert/syndicate/cybersun + name = "ERT - Syndicate Cybersun Commando" + + head = null + uniform = /obj/item/clothing/under/syndicate/combat + belt = /obj/item/storage/belt/military/c20r + suit = /obj/item/clothing/suit/space/hardsuit/syndi/cybersun + suit_store = /obj/item/gun/ballistic/automatic/smg/c20r + ears = /obj/item/radio/headset/syndicate/alt + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + + implants = list(/obj/item/implant/adrenalin) + backpack_contents = list(/obj/item/autosurgeon/syndicate/laser_arm, /obj/item/ammo_box/magazine/m10mm=2, /obj/item/radio=1) + + id_role = "Operative" + +/datum/outfit/centcom/ert/syndicate/cybersun/leader + name = "ERT - Syndicate Cybersun Commando Leader" + + ears = /obj/item/radio/headset/syndicate/alt/captain + glasses = /obj/item/clothing/glasses/hud/security/night + + backpack_contents = list(/obj/item/autosurgeon/syndicate/laser_arm=1, /obj/item/ammo_box/magazine/m10mm=2, /obj/item/antag_spawner/nuke_ops/borg_tele/medical/unlocked=1, /obj/item/radio=1) + + id_role = "Lead Operative" + +// paramedics + +/datum/outfit/centcom/ert/syndicate/cybersun/medic + name = "ERT - Syndicate Cybersun Paramedic" + + uniform = /obj/item/clothing/under/syndicate/medic + suit = /obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed + suit_store = /obj/item/tank/internals/oxygen + mask = /obj/item/clothing/mask/breath/medical + glasses = /obj/item/clothing/glasses/hud/health/night + gloves = /obj/item/clothing/gloves/color/latex/nitrile + head = /obj/item/clothing/head/soft/cybersun/medical + belt = /obj/item/storage/belt/medical/webbing/paramedic + back = /obj/item/storage/backpack/ert/medical + l_pocket = /obj/item/kitchen/knife/combat/survival + r_pocket = /obj/item/pinpointer/crew + accessory = /obj/item/clothing/accessory/holster/marine + + backpack_contents = list(/obj/item/storage/firstaid/tactical=1, /obj/item/holosign_creator/medical=1, /obj/item/radio=1) + + id_role = "Medical Technician" + +/datum/outfit/centcom/ert/syndicate/cybersun/medic/leader + name = "ERT - Syndicate Cybersun Lead Paramedic" + + head = /obj/item/clothing/head/beret/cmo + glasses = /obj/item/clothing/glasses/hud/security/night + ears = /obj/item/radio/headset/syndicate/captain + r_pocket = /obj/item/megaphone/command + + backpack_contents = list(/obj/item/storage/firstaid/tactical=1, /obj/item/holosign_creator/medical=1, /obj/item/autosurgeon/cmo=1, /obj/item/radio=1, /obj/item/antag_spawner/nuke_ops/borg_tele/medical/unlocked=1) + + id_role = "Lead Medical Technician" 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/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm index eb994b528c6b..ba38a4a9240b 100644 --- a/code/modules/clothing/outfits/plasmaman.dm +++ b/code/modules/clothing/outfits/plasmaman.dm @@ -212,12 +212,6 @@ mask = /obj/item/clothing/mask/gas/clown_hat gloves = /obj/item/clothing/gloves/color/plasmaman/clown -/datum/outfit/plasmaman/lieutenant //WS edit plasmaman customization - name = "Lt. Plasma" - head = /obj/item/clothing/head/helmet/space/plasmaman/security/lieutenant - uniform = /obj/item/clothing/under/plasmaman/lieutenant - gloves = /obj/item/clothing/gloves/combat - /datum/outfit/plasmaman/solgov //WS edit sgr name = "Plasmasolgov" head = /obj/item/clothing/head/helmet/space/plasmaman/solgov diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 1d19f894f302..db8c198ec06d 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -382,35 +382,6 @@ W.registered_name = H.real_name W.update_label() -/datum/outfit/job/lieutenant - name = "Lieutenant" - job_icon = "lieutenant" - //jobtype = /datum/job/lieutenant - - id = /obj/item/card/id/silver - head = /obj/item/clothing/head/beret/lt - uniform = /obj/item/clothing/under/rank/command/lieutenant - alt_uniform = /obj/item/clothing/under/rank/command - suit = /obj/item/clothing/suit/toggle/lieutenant - alt_suit = /obj/item/clothing/suit/armor/lieutenant_trenchcoat - dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain - gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/jackboots - ears = /obj/item/radio/headset/heads/lieutenant/alt - glasses = /obj/item/clothing/glasses/hud/health/sunglasses - belt = /obj/item/pda/lieutenant - - implants = list(/obj/item/implant/mindshield) - - 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 - - backpack_contents = list( - /obj/item/gun/energy/e_gun/adv_stopping = 1 - ) - /datum/outfit/job/hos/inteq_honorable name = "Inteq Honorable vanguard" head = /obj/item/clothing/head/beret/sec/hos/inteq/honorable diff --git a/code/modules/clothing/outfits/syndicate.dm b/code/modules/clothing/outfits/syndicate.dm new file mode 100644 index 000000000000..d1ba5c1ce35b --- /dev/null +++ b/code/modules/clothing/outfits/syndicate.dm @@ -0,0 +1,834 @@ +//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/officer + 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/officer + 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/officer + + head = /obj/item/clothing/head/gorlexcap + suit = /obj/item/clothing/suit/gorlex + +/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 = "Medical Director (Cybersun)" + jobtype = /datum/job/cmo + + uniform = /obj/item/clothing/under/rank/medical/chief_medical_officer/cybersun + 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 + head = /obj/item/clothing/head/beret/cmo/cybersun + suit = /obj/item/clothing/suit/toggle/labcoat/raincoat + 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)" + + 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) + +//"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/HoS/syndicate + 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 + 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) + +/datum/outfit/job/syndicate/hos/gorlex + name = "Sergeant (Syndicate)" + +/datum/outfit/job/syndicate/hos/twink + name = "Lieutenant (Twinkleshine)" + + uniform = /obj/item/clothing/under/syndicate/officer + 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/gorlex + 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 + alt_suit = /obj/item/clothing/suit/apron/surgical + l_hand = /obj/item/storage/firstaid/medical + +/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 90e9248fbe6c..8d9cab360203 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -362,13 +362,13 @@ 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 @@ -438,26 +438,6 @@ icon_state = "cowboy_fancy" permeability_coefficient = 0.08 -/obj/item/clothing/shoes/cowboy/lizard - name = "lizard skin boots" - desc = "You can hear a faint hissing from inside the boots; you hope it is just a mournful ghost." - icon_state = "lizardboots_green" - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 0) //lizards like to stay warm - -/obj/item/clothing/shoes/cowboy/lizard/masterwork - name = "\improper Hugs-The-Feet lizard skin boots" - desc = "A pair of masterfully crafted lizard skin boots. Finally a good application for the sector's most bothersome inhabitants."//:c - icon_state = "lizardboots_blue" - -/obj/effect/spawner/lootdrop/lizardboots - name = "random lizard boot quality" - desc = "Which ever gets picked, the lizard race loses" - icon = 'icons/obj/clothing/shoes.dmi' - icon_state = "lizardboots_green" - loot = list( - /obj/item/clothing/shoes/cowboy/lizard = 7, - /obj/item/clothing/shoes/cowboy/lizard/masterwork = 1) - /obj/item/clothing/shoes/cookflops desc = "All this talk of antags, greytiding, and griefing... I just wanna grill for god's sake!" name = "grilling sandals" 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..aa153b233c46 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -420,30 +420,80 @@ var/combat_slowdown = 0 //slowdown when in combat mode var/lightweight = 0 //used for flags when toggling -//Scarlet Syndie suit -/obj/item/clothing/head/helmet/space/hardsuit/syndi/scarlet - name = "scarlet hardsuit helmet" - desc = "A standardized dual-mode helmet derived from more advanced special operations helmets. It is in EVA mode. Manufactured by Donk Co." - alt_desc = "A standardized dual-mode helmet derived from more advanced special operations helmets. It is in combat mode. Manufactured by Donk Co." - icon_state = "hardsuit1-scarlet" - item_state = "scarlet_helm" - hardsuit_type = "scarlet" +//Ramzi Syndie suit +/obj/item/clothing/head/helmet/space/hardsuit/syndi/ramzi + name = "rusted-red hardsuit helmet" + desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Gorlex Marauders." + alt_desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in combat mode. Manufactured by Gorlex Marauders." + icon_state = "hardsuit1-ramzi" + item_state = "hardsuit1-ramzi" + hardsuit_type = "ramzi" armor = list("melee" = 35, "bullet" = 25, "laser" = 20,"energy" = 40, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet - name = "scarlet hardsuit" - desc = "A standardized dual-mode hardsuit derived from more advanced special operations hardsuits. It is in EVA mode. Manufactured by Donk Co." - alt_desc = "A standardized dual-mode hardsuit derived from more advanced special operations hardsuits. It is in combat mode. Manufactured by Donk Co." - icon_state = "hardsuit1-scarlet" - item_state = "scarlet_hardsuit" - hardsuit_type = "scarlet" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/scarlet +/obj/item/clothing/suit/space/hardsuit/syndi/ramzi + name = "rusted-red hardsuit" + desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Gorlex Marauders." + alt_desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in combat mode. Manufactured by Gorlex Marauders." + icon_state = "hardsuit1-ramzi" + item_state = "hardsuit1-ramzi" + hardsuit_type = "ramzi" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ramzi lightweight = 1 jetpack = null armor = list("melee" = 35, "bullet" = 25, "laser" = 20,"energy" = 40, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) combat_slowdown = 0.5 jetpack = null +//2nd Battlegroup Syndie suit +/obj/item/clothing/head/helmet/space/hardsuit/syndi/sbg + name = "beige-red hardsuit helmet" + desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." + alt_desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in combat mode. Manufactured by Second Battlegroup." + icon_state = "hardsuit1-sbg" + item_state = "hardsuit1-sbg" + hardsuit_type = "sbg" + armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) + +/obj/item/clothing/suit/space/hardsuit/syndi/sbg + name = "beige-red hardsuit" + desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." + alt_desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in combat mode. Manufactured by the Second Battlegroup." + icon_state = "hardsuit1-sbg" + item_state = "hardsuit1-sbg" + hardsuit_type = "sbg" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/sbg + lightweight = 1 + jetpack = null + armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) + combat_slowdown = 0 + jetpack = null + + +//Hardliner Syndie suit +/obj/item/clothing/head/helmet/space/hardsuit/syndi/hl + name = "white-red hardsuit helmet" + desc = "An advanced dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by white. It is in EVA mode. Manufactured by Second Battlegroup." + alt_desc = "An advanced dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by white. It is in combat mode. Manufactured by Second Battlegroup." + icon_state = "hardsuit1-hl" + item_state = "hardsuit1-hl" + hardsuit_type = "hl" + armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) + +/obj/item/clothing/suit/space/hardsuit/syndi/hl + name = "white-red hardsuit" + desc = "An advanced dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by white. It is in EVA mode. Manufactured by Second Battlegroup." + alt_desc = "An advanced dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by white. It is in combat mode. Manufactured by the Second Battlegroup." + icon_state = "hardsuit1-hl" + item_state = "hardsuit1-hl" + hardsuit_type = "hl" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/hl + lightweight = 1 + jetpack = null + armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) + combat_slowdown = 0 + jetpack = null + + //Elite Syndie suit /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite name = "elite syndicate hardsuit helmet" @@ -637,7 +687,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 +870,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..43dc5a5dd8d0 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) ..() @@ -360,9 +360,3 @@ desc = "An envirosuit helmet made for the sanctioned plasmaman." icon_state = "secmed_envirohelm" item_state = "secmed_envirohelm" - -/obj/item/clothing/head/helmet/space/plasmaman/security/lieutenant //WS edit plasmaman customization - name = "lieutenants envirosuit helmet" - desc = "an envirosuit helmet made for the sentinel plasmaman." - icon_state = "lt_envirohelm" - item_state = "lt_envirohelm" diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 4ea59b14384a..b93db688fa02 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -46,7 +46,7 @@ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS resistance_flags = FIRE_PROOF | ACID_PROOF - supports_variations = VOX_VARIATION + supports_variations = VOX_VARIATION | DIGITIGRADE_VARIATION_NO_NEW_ICON /obj/item/clothing/suit/armor/vest/marine/medium name = "medium tactical armor vest" @@ -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." @@ -98,7 +103,6 @@ /obj/item/clothing/suit/armor/vest/security/warden name = "warden's jacket" desc = "A black armored jacket with silver shoulder designations and '/Warden/' stitched into one of the chest pockets." - icon_state = "armor_warden" item_state = "armor" body_parts_covered = CHEST|GROIN|ARMS @@ -139,18 +143,29 @@ resistance_flags = FIRE_PROOF /obj/item/clothing/suit/armor/vest/capcarapace/syndicate - name = "syndicate captain's vest" - 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." + name = "Syndicate captain's vest" + 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" + name = "Colonial Minutemen general coat" desc = "A very fancy coat used by generals of the Colonial Minutemen." icon_state = "carapace_minutemen" item_state = "carapace_minutemen" @@ -381,12 +396,6 @@ icon_state = "armor_rouma_montagne" item_state = "rouma_montagne_coat" -/obj/item/clothing/suit/armor/vest/lieutenant - name = "lieutenant's armor" - desc = "An armored vest with a lieutenant's insignia imprinted on it." - icon_state = "armor_blueshield" - item_state = "blueshield" - /obj/item/clothing/suit/armor/vest/bulletproof/solgov name = "\improper Sonnensoldner gambison" desc = "A standard armor vest fielded for SolGov's Sonnensoldners." @@ -479,7 +488,7 @@ /obj/item/clothing/suit/armor/vest/security/hos name = "head of security's jacket" desc = "This piece of clothing was specifically designed for asserting superior authority." - icon_state = "hosjacket" + icon_state = "armor_hosjacket" body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/armor/vest/security/brig_phys 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/hoodies.dm b/code/modules/clothing/suits/hoodies.dm index 82e4d86bc3d3..f07d46420c5b 100644 --- a/code/modules/clothing/suits/hoodies.dm +++ b/code/modules/clothing/suits/hoodies.dm @@ -74,3 +74,43 @@ desc = "A gray hood for your gray hoodie." icon_state = "hoodie_gray" item_state = "hoodie_gray" + +/obj/item/clothing/suit/hooded/hoodie/fbp + name = "\improper FBP kepori hoodie" + desc = "A hoodie themed to look like a kepori in a Full Body Prosthetic. It has a comfy pocket for keeping your hands warm." + icon_state = "hoodie_fbp" + item_state = "hoodie_fbp" + hoodtype = /obj/item/clothing/head/hooded/hood/fbp + +/obj/item/clothing/head/hooded/hood/fbp + name = "\improper FBP kepori hood" + desc = "A hood for your FBP hoodie." + icon_state = "hoodie_fbp" + item_state = "hoodie_fbp" + +/obj/item/clothing/suit/hooded/hoodie/rilena + name = "K4L1 hoodie" + desc = "A hoodie themed to look like K4L1 from the popular webseries RILENA. It has a comfy pocket for keeping your hands warm." + icon_state = "hoodie_rilena" + item_state = "hoodie_rilena" + hoodtype = /obj/item/clothing/head/hooded/hood/rilena + +/obj/item/clothing/suit/hooded/hoodie/rilena/equipped(mob/user, slot) + . = ..() + if(slot != ITEM_SLOT_OCLOTHING) + return + var/mob/living/L = user + if(HAS_TRAIT(L, TRAIT_FAN_RILENA)) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "hoodie_rilena", /datum/mood_event/rilena_super_fan) + +/obj/item/clothing/suit/hooded/hoodie/rilena/dropped(mob/user) + . = ..() + var/mob/living/L = user + if(HAS_TRAIT(L, TRAIT_FAN_RILENA)) + SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "hoodie_rilena") + +/obj/item/clothing/head/hooded/hood/rilena + name = "RILENA: LMR K4L1 hood" + desc = "A hood for your RILENA themed hoodie." + icon_state = "hoodie_rilena" + item_state = "hoodie_rilena" diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 241b231043fe..17bb0329cfef 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" @@ -244,27 +234,6 @@ body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS -//Lieutenant -/obj/item/clothing/suit/armor/lieutenant_trenchcoat - name = "lieutenant's trenchcoat" - desc = "A design taken from a war over 500 years ago. Makes you look like a badass." - icon_state = "armor_blueshield_trenchcoat" - item_state = "trenchcoat_blueshield" - blood_overlay_type = "coat" - armor = list("melee" = 25, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - body_parts_covered = CHEST|GROIN|ARMS|HANDS - cold_protection = CHEST|LEGS|ARMS - heat_protection = CHEST|LEGS|ARMS - -/obj/item/clothing/suit/toggle/lieutenant - name = "lieutenant's coat" - desc = "Surplus from some military. You finally have your own coat." - icon_state = "blueshield_coat" - item_state = "blueshield_coat" - allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/ammo_box, /obj/item/ammo_casing,/obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton) - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) - body_parts_covered = CHEST|GROIN|ARMS|HANDS - //SolGov suits /obj/item/clothing/suit/solgov diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 8a918876dfcd..24836f6f2404 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -8,7 +8,6 @@ allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/soap, /obj/item/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50) togglename = "buttons" - species_exception = list(/datum/species/golem) /obj/item/clothing/suit/toggle/labcoat/cmo name = "chief medical officer's labcoat" @@ -85,7 +84,6 @@ You're pretty sure this is just a raincoat. allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/soap, /obj/item/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50) togglename = "buttons" - species_exception = list(/datum/species/golem) /obj/item/clothing/suit/longcoat/virologist name = "virologist longcoat" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 466e75b012f7..59b252a9836a 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -343,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 @@ -680,11 +686,11 @@ item_state = "DutchJacket" body_parts_covered = ARMS -/obj/item/clothing/suit/aclf +/obj/item/clothing/suit/gorlex name = "\improper 2nd Battlegroup jacket" - desc = "An armored jacket worn by the Gorlex Marauders 2nd Battlegroup." + desc = "An armored jacket worn by the 2nd Battlegroup." body_parts_covered = CHEST|GROIN|ARMS|HANDS - icon_state = "aclfjacket" - item_state = "aclfjacket" + icon_state = "gorlexjacket" + item_state = "gorlexjacket" blood_overlay_type = "coat" armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm index 37b548a0ab72..588a8f1600de 100644 --- a/code/modules/clothing/suits/wintercoats.dm +++ b/code/modules/clothing/suits/wintercoats.dm @@ -3,18 +3,28 @@ /obj/item/clothing/suit/hooded/wintercoat name = "winter coat" desc = "A heavy jacket made from 'synthetic' animal furs." + icon = 'icons/obj/clothing/suits/wintercoat.dmi' + mob_overlay_icon = 'icons/mob/clothing/suits/wintercoat.dmi' icon_state = "coatwinter" item_state = "coatwinter" body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) - 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) + 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/clothing/head/hooded/winterhood name = "winter hood" desc = "A hood attached to a heavy winter jacket." - icon_state = "winterhood" + icon = 'icons/obj/clothing/head/winterhood.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/winterhood.dmi' + icon_state = "hood_winter" body_parts_covered = HEAD cold_protection = HEAD min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT @@ -33,7 +43,7 @@ allowed = GLOB.security_wintercoat_allowed /obj/item/clothing/head/hooded/winterhood/captain - icon_state = "winterhood_captain" + icon_state = "hood_captain" armor = list("melee" = 25, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) /obj/item/clothing/suit/hooded/wintercoat/security @@ -48,7 +58,7 @@ allowed = GLOB.security_wintercoat_allowed /obj/item/clothing/head/hooded/winterhood/security - icon_state = "winterhood_security" + icon_state = "hood_security" armor = list("melee" = 25, "bullet" = 15, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) /obj/item/clothing/suit/hooded/wintercoat/medical @@ -60,7 +70,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/medical /obj/item/clothing/head/hooded/winterhood/medical - icon_state = "winterhood_medical" + icon_state = "hood_medical" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 45) /obj/item/clothing/suit/hooded/wintercoat/medical/paramedic @@ -70,7 +80,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/medical/paramedic /obj/item/clothing/head/hooded/winterhood/medical/paramedic - icon_state = "winterhood_paramedic" + icon_state = "hood_paramedic" /obj/item/clothing/suit/hooded/wintercoat/science name = "science winter coat" @@ -81,7 +91,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/science /obj/item/clothing/head/hooded/winterhood/science - icon_state = "winterhood_science" + icon_state = "hood_science" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/suit/hooded/wintercoat/engineering @@ -93,7 +103,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering /obj/item/clothing/head/hooded/winterhood/engineering - icon_state = "winterhood_engineer" + icon_state = "hood_engineer" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 20, "fire" = 30, "acid" = 45) /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos @@ -103,7 +113,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering/atmos /obj/item/clothing/head/hooded/winterhood/engineering/atmos - icon_state = "winterhood_atmos" + icon_state = "hood_atmos" /obj/item/clothing/suit/hooded/wintercoat/hydro name = "hydroponics winter coat" @@ -113,7 +123,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/hydro /obj/item/clothing/head/hooded/winterhood/hydro - icon_state = "winterhood_hydro" + icon_state = "hood_hydro" /obj/item/clothing/suit/hooded/wintercoat/cargo name = "cargo winter coat" @@ -122,7 +132,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/cargo /obj/item/clothing/head/hooded/winterhood/cargo - icon_state = "winterhood_cargo" + icon_state = "hood_cargo" /obj/item/clothing/suit/hooded/wintercoat/miner name = "mining winter coat" @@ -133,7 +143,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/miner /obj/item/clothing/head/hooded/winterhood/miner - icon_state = "winterhood_miner" + icon_state = "hood_miner" armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) // Inteq @@ -147,28 +157,24 @@ supports_variations = KEPORI_VARIATION /obj/item/clothing/head/hooded/winterhood/security/inteq - icon_state = "winterhood_inteq" + icon_state = "hood_inteq" supports_variations = KEPORI_VARIATION -/obj/item/clothing/suit/hooded/coat/inteq +/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt name = "inteq hooded coat" desc = "A hooded coat with a fur trim around the hood, comfy! It has a small 'IRMG' embroidered onto the shoulder." - icon_state = "hoodieinteq" - item_state = "hoodieinteq" + icon_state = "coatinteq_alt" + item_state = "coatinteq_alt" armor = list("melee" = 25, "bullet" = 15, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) - hoodtype = /obj/item/clothing/head/hooded/coat/inteq + hoodtype = /obj/item/clothing/head/hooded/winterhood/security/inteq/alt -/obj/item/clothing/head/hooded/coat/inteq +/obj/item/clothing/head/hooded/winterhood/security/inteq/alt name = "inteq hood" desc = "A comfortable looking brown hood." - icon_state = "hoodinteq" - item_state = "hoodinteq" + icon_state = "hood_inteq_alt" + item_state = "hood_inteq_alt" armor = list("melee" = 25, "bullet" = 15, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) -/obj/item/clothing/suit/hooded/coat/inteq/Initialize() - . = ..() - allowed = GLOB.security_wintercoat_allowed - // CentCom /obj/item/clothing/suit/hooded/wintercoat/centcom name = "centcom winter coat" @@ -183,7 +189,7 @@ allowed += GLOB.security_wintercoat_allowed /obj/item/clothing/head/hooded/winterhood/centcom - icon_state = "winterhood_centcom" + icon_state = "hood_centcom" armor = list("melee" = 35, "bullet" = 40, "laser" = 40, "energy" = 50, "bomb" = 35, "bio" = 10, "rad" = 10, "fire" = 10, "acid" = 60) // SolGov @@ -197,5 +203,5 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/solgov /obj/item/clothing/head/hooded/winterhood/solgov - icon_state = "winterhood_solgov" + icon_state = "hood_solgov" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 20, "fire" = 30, "acid" = 45) 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..7bb36a9086b4 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 @@ -464,10 +464,7 @@ name = "detective's shoulder holster" pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster/detective -/obj/item/clothing/accessory/holster/lieutenant - name = "lieutenant's shoulder holster" - desc = "A modified shoulder holster designed to fit a small egun and power cells." - pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster/lt + /obj/item/clothing/accessory/holster/detective/Initialize() . = ..() @@ -523,3 +520,25 @@ name = "solgov waistcoat" desc = "A standard issue waistcoat in solgov colors." icon_state = "solgov_waistcoat" + +////////// +//RILENA// +////////// + +/obj/item/clothing/accessory/rilena_pin + name = "RILENA: LMR Xader pin" + desc = "A pin that shows your love for the webseries RILENA." + icon_state = "rilena_pin" + above_suit = FALSE + minimize_when_attached = TRUE + attachment_slot = CHEST + +/obj/item/clothing/accessory/rilena_pin/on_uniform_equip(obj/item/clothing/under/U, user) + var/mob/living/L = user + if(HAS_TRAIT(L, TRAIT_FAN_RILENA)) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "rilena_pin", /datum/mood_event/rilena_fan) + +/obj/item/clothing/accessory/rilena_pin/on_uniform_dropped(obj/item/clothing/under/U, user) + var/mob/living/L = user + if(HAS_TRAIT(L, TRAIT_FAN_RILENA)) + SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "rilena_pin") diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm index 9d1ceda58127..59b83eb7e3e5 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm @@ -152,15 +152,3 @@ icon_state = "mime_enviroskirt" item_state = "mime_enviroskirt" -/obj/item/clothing/under/plasmaman/lieutenant //WS edit plasmaman customization - name = "lieutenants envirosuit" - desc = "A navy blue envirosuit with chlorophyll green trimmings." - icon_state = "lt_envirosuit" - item_state = "lt_envirosuit" - -/obj/item/clothing/under/plasmaman/lieutenant/skirt //WS edit plasmaman customization - name = "lieutenants enviroskirt" - desc = "A navy blue envirosuit with chlorophyll green trimmings and a poofy skirt, just as blue to match." - icon_state = "lt_enviroskirt" - item_state = "lt_enviroskirt" - diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 5c319344bf56..231c62eb2895 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 @@ -111,35 +111,7 @@ body_parts_covered = CHEST|GROIN|ARMS supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION -//Lieutenant - -/obj/item/clothing/under/rank/command/lieutenant - 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 - desc = "A command jumpskirt in the colours of the Lieutenant." - name = "\improper lieutenant jumpskirt" - icon_state = "lt_skirt" - body_parts_covered = CHEST|GROIN|ARMS - can_adjust = FALSE - supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION - -/obj/item/clothing/under/rank/command/lieutenant/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 - desc = "A command jumpskirt in the colours of the Lieutenant." - name = "\improper lieutenant blue jumpskirt" - icon_state = "lt_nt_skirt" - body_parts_covered = CHEST|GROIN|ARMS - supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION - +//Minuteman /obj/item/clothing/under/rank/command/minutemen name = "colonial minutemen officer uniform" desc = "A uniform used by officers of the Colonial Minutemen." diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index b50de5f3d17e..7a95273c22f2 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -11,6 +11,16 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) +/obj/item/clothing/under/rank/medical/chief_medical_officer/cybersun + desc = "It's a jumpsuit worn by those with the experience to be a \"Medical Director\" for Cybersun. It provides minor biological protection." + name = "medical director's jumpsuit" + icon_state = "cybersun_md" + item_state = "w_suit" + icon = 'icons/obj/clothing/under/syndicate.dmi' + mob_overlay_icon = 'icons/mob/clothing/under/syndicate.dmi' + can_adjust = FALSE + supports_variations = DIGITIGRADE_VARIATION + /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt name = "chief medical officer's jumpskirt" desc = "It's a jumpskirt worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." 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/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index 64500724d01e..1dabceb6db24 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -87,3 +87,10 @@ desc = "A preppy green skirt with a white blouse." icon_state = "plaid_green" item_state = "plaid_green" + +/obj/item/clothing/under/dress/rilena + name = "RILENA: LMR Ri cosplay" + desc = "A pretty red dress with big pink ribbons attached. Intended to be worn by Kepori cosplayers, but also fits other species." + icon_state = "rilena_dress" + item_state = "rilena_dress" + supports_variations = KEPORI_VARIATION diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 30b47b4c3287..01ed8b5a082a 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -89,13 +89,15 @@ name = "red polo and khaki pants" desc = "A non-descript and slightly suspicious looking polo paired with a respectable yet also suspicious pair of khaki pants." icon_state = "jake" + can_adjust = FALSE armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE -/obj/item/clothing/under/syndicate/aclf - name = "2nd Battlegroup uniform" - desc = "A black uniform worn by the officers of the Gorlex Marauders 2nd Battlegroup." - icon_state = "aclf" +/obj/item/clothing/under/syndicate/officer + name = "syndicate officer uniform" + desc = "A black uniform worn by officers of many branches of the Syndicate." + icon_state = "officer" + can_adjust = FALSE armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE @@ -103,6 +105,7 @@ name = "ACLF uniform" desc = "A button-up in a tasteful shade of gray with red pants, used as the uniform of the Anti-Corporate Liberation front on the rim." icon_state = "aclfgrunt" + can_adjust = FALSE armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE @@ -110,11 +113,19 @@ name = "Gorlex Marauder uniform" desc = "Originally worn by the miners of the Gorlex VII colony, it is now donned by veteran Gorlex Marauders." icon_state = "gorlex" + can_adjust = FALSE armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE 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" + can_adjust = FALSE + 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" @@ -122,12 +133,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" @@ -141,6 +160,7 @@ name = "Donk! Co. employee uniform" desc = "The standard employee uniform of Donk Co. Smells like minimum wage." icon_state = "donk_cargo" + can_adjust = FALSE armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) body_parts_covered = CHEST|GROIN|ARMS alt_covers_chest = TRUE @@ -167,6 +187,7 @@ name = "GEC engineer jumpsuit" desc = "A jumpsuit worn by GEC engineers. This one is worn by low ranking engineers." icon_state = "gec_engineer" + can_adjust = FALSE armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 60, "acid" = 20) resistance_flags = NONE 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/discord/tgs_commands.dm b/code/modules/discord/tgs_commands.dm index e2c92e345459..d79bf07b87e4 100644 --- a/code/modules/discord/tgs_commands.dm +++ b/code/modules/discord/tgs_commands.dm @@ -5,13 +5,12 @@ /datum/tgs_chat_command/notify/Run(datum/tgs_chat_user/sender, params) if(!CONFIG_GET(string/chat_announce_new_game)) - return "Notifcations are currently disabled" + return new /datum/tgs_message_content("New round notifications are currently disabled.") - for(var/member in SSdiscord.notify_members) // If they are in the list, take them out - if(member == sender.mention) - SSdiscord.notify_members -= sender.mention - return "You will no longer be notified when the server restarts" + if(sender.mention in SSdiscord.notify_members) // If they are in the list, take them out + SSdiscord.notify_members -= sender.mention + return new /datum/tgs_message_content("You will no longer be notified when the round ends") // If we got here, they arent in the list. Chuck 'em in! SSdiscord.notify_members += sender.mention - return "You will now be notified when the server restarts" + return new /datum/tgs_message_content("You will now be notified when the server restarts") 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..990370ba64ee 100644 --- a/code/modules/events/fake_virus.dm +++ b/code/modules/events/fake_virus.dm @@ -15,7 +15,7 @@ if(defacto_min)// event will hit 1-3 people by default, but will do 1-2 or just 1 if only those many candidates are available for(var/i=1; i<=rand(1,defacto_min); i++) var/mob/living/carbon/human/hypochondriac = pick(fake_virus_victims) - hypochondriac.apply_status_effect(STATUS_EFFECT_FAKE_VIRUS) + hypochondriac.apply_status_effect(/datum/status_effect/fake_virus) fake_virus_victims -= hypochondriac announce_to_ghosts(hypochondriac) @@ -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/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/heart_attack.dm b/code/modules/events/heart_attack.dm index 35d8c4b141e1..dfe89062ec3f 100644 --- a/code/modules/events/heart_attack.dm +++ b/code/modules/events/heart_attack.dm @@ -8,7 +8,7 @@ /datum/round_event/heart_attack/start() var/list/heart_attack_contestants = list() for(var/mob/living/carbon/human/victim as anything in shuffle(GLOB.human_list)) - if(!victim.client || victim.stat == DEAD || HAS_TRAIT(victim, TRAIT_CRITICAL_CONDITION) || !victim.can_heartattack() || victim.has_status_effect(STATUS_EFFECT_EXERCISED) || (/datum/disease/heart_failure in victim.diseases) || victim.undergoing_cardiac_arrest()) + if(!victim.client || victim.stat == DEAD || HAS_TRAIT(victim, TRAIT_CRITICAL_CONDITION) || !victim.can_heartattack() || victim.has_status_effect(/datum/status_effect/exercised) || (/datum/disease/heart_failure in victim.diseases) || victim.undergoing_cardiac_arrest()) continue if(victim.mind.assigned_role in GLOB.nonhuman_positions) continue 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 c906bd170e86..48219cf98f2f 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -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 @@ -365,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..9ca494d431e9 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) @@ -954,10 +954,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if("too_much_tox") target.throw_alert(alert_type, /atom/movable/screen/alert/too_much_tox, override = TRUE) if("nutrition") - if(prob(50)) - target.throw_alert(alert_type, /atom/movable/screen/alert/fat, override = TRUE) - else - target.throw_alert(alert_type, /atom/movable/screen/alert/starving, override = TRUE) + target.throw_alert(alert_type, /atom/movable/screen/alert/starving, override = TRUE) if("gravity") target.throw_alert(alert_type, /atom/movable/screen/alert/weightless, override = TRUE) if("fire") @@ -1098,7 +1095,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 +1116,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 +1133,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 +1143,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 +1260,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..08a87b6f9193 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()) @@ -515,6 +515,13 @@ volume = 30 spillable = TRUE +/obj/item/reagent_containers/food/drinks/rilenacup + name = "RILENA mug" + desc = "A mug with RILENA: LMR protagonist Ri's face on it." + icon_state = "rilenacup" + volume = 30 + spillable = TRUE + //////////////////////////soda_cans// //These are in their own group to be used as IED's in /obj/item/grenade/ghettobomb.dm diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index d002c8aab70c..b4d8cf8090c9 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -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..922e74ee9a3b --- /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 = "Vintage Saint-Roumain Trickwine" + desc = "Supposedly one of the first bottles made" + vintage = TRUE + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine + name = "Vintage 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 = "Vintage 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 = "Vintage 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 = "Vintage 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 = "Vintage 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 = "Vintage 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/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 2baf670d807d..589e986aaeeb 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -323,3 +323,13 @@ icon_state = "oliveoil" list_reagents = list(/datum/reagent/consumable/cornoil = 50) +/obj/item/reagent_containers/food/condiment/pack/sugar + name = "sugar pack" + originalname = "sugar" + list_reagents = list(/datum/reagent/consumable/sugar = 5) + +/obj/item/reagent_containers/food/condiment/pack/creamer + name = "creamer" /// dont laugh you child + originalname = "cream" + list_reagents = list(/datum/reagent/consumable/cream = 5) + diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm index 465b7939c0b7..c4daa88869a7 100644 --- a/code/modules/food_and_drinks/food/customizables.dm +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -304,6 +304,9 @@ reagent_flags = OPENCONTAINER custom_materials = list(/datum/material/glass = 500) w_class = WEIGHT_CLASS_NORMAL + fill_icon = 'icons/obj/food/soupsalad.dmi' + fill_icon_state = "fullbowl" + fill_icon_thresholds = list(1) /obj/item/reagent_containers/glass/bowl/attackby(obj/item/I,mob/user, params) if(istype(I, /obj/item/reagent_containers/food/snacks)) @@ -323,22 +326,6 @@ . = ..() return -/obj/item/reagent_containers/glass/bowl/on_reagent_change(changetype) - ..() - update_appearance() - -/obj/item/reagent_containers/glass/bowl/update_icon_state() - if(!reagents || !reagents.total_volume) - icon_state = "bowl" - return ..() - -/obj/item/reagent_containers/glass/bowl/update_overlays() - . = ..() - if(reagents && reagents.total_volume) - var/mutable_appearance/filling = mutable_appearance('icons/obj/food/soupsalad.dmi', "fullbowl") - filling.color = mix_color_from_reagents(reagents.reagent_list) - . += filling - #undef INGREDIENTS_FILL #undef INGREDIENTS_SCATTER #undef INGREDIENTS_STACK diff --git a/code/modules/food_and_drinks/food/ration.dm b/code/modules/food_and_drinks/food/ration.dm index b74db1f0ccb7..261fe707ed7f 100644 --- a/code/modules/food_and_drinks/food/ration.dm +++ b/code/modules/food_and_drinks/food/ration.dm @@ -3,6 +3,7 @@ desc = "standard issue ration" filling_color = "#664330" list_reagents = list(/datum/reagent/consumable/nutriment = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) icon = 'icons/obj/food/ration.dmi' icon_state = "ration_side" in_container = TRUE @@ -55,7 +56,16 @@ ..() else name = "warm [initial(name)]" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + var/cooking_efficiency = 1 + if(istype(Heater)) + cooking_efficiency = Heater.efficiency + if(length(bonus_reagents)) + for(var/r_id in bonus_reagents) + var/amount = bonus_reagents[r_id] * cooking_efficiency + if(ispath(r_id, /datum/reagent/consumable/nutriment)) + reagents.add_reagent(r_id, amount, tastes) + else + reagents.add_reagent(r_id, amount) cooked = TRUE /obj/item/reagent_containers/food/snacks/ration/examine(mob/user) diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index 86323c2e00bc..e4ccbd1c8f90 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -68,20 +68,6 @@ tastes = list("slime" = 1, "jelly" = 1) foodtype = MEAT | RAW | TOXIC -/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem - icon_state = "golemmeat" - desc = "Edible rocks, welcome to the future." - list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/iron = 3) - filling_color = "#A9A9A9" - tastes = list("rock" = 1) - foodtype = MEAT | RAW | GROSS - -/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine - icon_state = "agolemmeat" - desc = "From the slime pen to the rune to the kitchen, science." - filling_color = "#66CDAA" - foodtype = MEAT | RAW | GROSS - /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard icon_state = "lizardmeat" desc = "Delicious dino damage." diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index 95ef84ae5cb7..dfbed9ba9112 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -262,9 +262,9 @@ bonus_reagents = list(/datum/reagent/consumable/hot_coco = 4, /datum/reagent/consumable/cream = 2, /datum/reagent/consumable/vanilla = 3, /datum/reagent/consumable/sugar = 2) overlay_state = "jumbo" -/obj/item/reagent_containers/food/snacks/popsicle/nogga_black - name = "nogga black" - desc = "A salty licorice icecream recently reintroduced due to all the records of the controversy being lost to time. Those who cannot remember the past are doomed to repeat it." +/obj/item/reagent_containers/food/snacks/popsicle/licorice + name = "licorice icecream" + desc = "A salty licorice icecream." list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/consumable/cream = 2, /datum/reagent/consumable/vanilla = 1, /datum/reagent/consumable/sugar = 4) bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/consumable/cream = 2, /datum/reagent/consumable/vanilla = 1, /datum/reagent/consumable/sugar = 4) tastes = list("salty liquorice") diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 78999078193c..510130ce08be 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -227,7 +227,7 @@ /obj/item/reagent_containers/food/snacks/sausage/Initialize() . = ..() - eatverb = pick("bite","chew","nibble","deep throat","gobble","chomp") + eatverb = pick("bite","chew","nibble","gobble","chomp") /obj/item/reagent_containers/food/snacks/salami name = "salami" @@ -430,14 +430,6 @@ tastes = list("tofu" = 3, "metal" = 1) foodtype = VEGETABLES - -/obj/item/reagent_containers/food/snacks/kebab/tail - name = "lizard-tail kebab" - desc = "Severed lizard tail on a stick." - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) - tastes = list("meat" = 8, "metal" = 4, "scales" = 1) - foodtype = MEAT // NOT GORE, tastes delicious! - /obj/item/reagent_containers/food/snacks/kebab/rat name = "rat-kebab" desc = "Not so delicious rat meat, on a stick." 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/coffeemaker.dm b/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm new file mode 100644 index 000000000000..7b98be6a16c4 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm @@ -0,0 +1,689 @@ +#define BEAN_CAPACITY 10 //amount of coffee beans that can fit inside the impressa coffeemaker + +/obj/machinery/coffeemaker + name = "coffeemaker" + desc = "A Modello 3 Coffeemaker that brews coffee and holds it at the perfect temperature of 176 fahrenheit. Made by Piccionaia Home Appliances." + icon = 'icons/obj/machines/coffeemaker.dmi' + icon_state = "coffeemaker_nopot_nocart" + base_icon_state = "coffeemaker" + resistance_flags = FIRE_PROOF | ACID_PROOF + circuit = /obj/item/circuitboard/machine/coffeemaker + var/obj/item/reagent_containers/food/drinks/bottle/coffeepot/coffeepot = null + var/brewing = FALSE + var/brew_time = 20 SECONDS + var/speed = 1 + /// The coffee cartridge to make coffee from. In the future, coffee grounds are like printer ink. + var/obj/item/coffee_cartridge/cartridge = null + /// The type path to instantiate for the coffee cartridge the device initially comes with, eg. /obj/item/coffee_cartridge + var/initial_cartridge = /obj/item/coffee_cartridge + /// The number of cups left + var/coffee_cups = 15 + var/max_coffee_cups = 15 + /// The amount of sugar packets left + var/sugar_packs = 10 + var/max_sugar_packs = 10 + /// The amount of sweetener packets left + var/sweetener_packs = 10 + var/max_sweetener_packs = 10 + /// The amount of creamer packets left + var/creamer_packs = 10 + var/max_creamer_packs = 10 + + var/static/radial_examine = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine") + var/static/radial_brew = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_brew") + var/static/radial_eject_pot = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_pot") + var/static/radial_eject_cartridge = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_cartridge") + var/static/radial_take_cup = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_take_cup") + var/static/radial_take_sugar = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_take_sugar") + var/static/radial_take_sweetener = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_take_sweetener") + var/static/radial_take_creamer = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_take_creamer") + +/obj/machinery/coffeemaker/Initialize(mapload) + . = ..() + if(mapload) + coffeepot = new /obj/item/reagent_containers/food/drinks/bottle/coffeepot(src) + cartridge = new /obj/item/coffee_cartridge(src) + +/obj/machinery/coffeemaker/deconstruct() + coffeepot?.forceMove(drop_location()) + cartridge?.forceMove(drop_location()) + return ..() + +/obj/machinery/coffeemaker/Destroy() + QDEL_NULL(coffeepot) + QDEL_NULL(cartridge) + return ..() + +/obj/machinery/coffeemaker/Exited(atom/movable/gone, direction) + . = ..() + if(gone == coffeepot) + coffeepot = null + update_appearance(UPDATE_OVERLAYS) + if(gone == cartridge) + cartridge = null + update_appearance(UPDATE_OVERLAYS) +/obj/machinery/coffeemaker/examine(mob/user) + . = ..() + if(!in_range(user, src) && !issilicon(user) && !isobserver(user)) + . += span_warning("You're too far away to examine [src]'s contents and display!") + return + + if(brewing) + . += span_warning("\The [src] is brewing.") + return + + if(panel_open) + . += span_notice("[src]'s maintenance hatch is open!") + return + + if(coffeepot || cartridge) + . += span_notice("\The [src] contains:") + if(coffeepot) + . += span_notice("- \A [coffeepot].") + if(cartridge) + . += span_notice("- \A [cartridge].") + return + + if(!(machine_stat & (NOPOWER|BROKEN))) + . += "[span_notice("The status display reads:")]\n"+\ + span_notice("- Brewing coffee at [speed*100]%.") + if(coffeepot) + for(var/datum/reagent/consumable/cawfee as anything in coffeepot.reagents.reagent_list) + . += span_notice("- [cawfee.volume] units of coffee in pot.") + if(cartridge) + if(cartridge.charges < 1) + . += span_notice("- grounds cartridge is empty.") + else + . += span_notice("- grounds cartridge has [cartridge.charges] charges remaining.") + + if (coffee_cups >= 1) + . += span_notice("There [coffee_cups == 1 ? "is" : "are"] [coffee_cups] coffee cup[coffee_cups != 1 && "s"] left.") + else + . += span_notice("There are no cups left.") + + if (sugar_packs >= 1) + . += span_notice("There [sugar_packs == 1 ? "is" : "are"] [sugar_packs] packet[sugar_packs != 1 && "s"] of sugar left.") + else + . += span_notice("There is no sugar left.") + + if (sweetener_packs >= 1) + . += span_notice("There [sweetener_packs == 1 ? "is" : "are"] [sweetener_packs] packet[sweetener_packs != 1 && "s"] of sweetener left.") + else + . += span_notice("There is no sweetener left.") + + if (creamer_packs > 1) + . += span_notice("There [creamer_packs == 1 ? "is" : "are"] [creamer_packs] packet[creamer_packs != 1 && "s"] of creamer left.") + else + . += span_notice("There is no creamer left.") + + +/obj/machinery/coffeemaker/update_overlays() + . = ..() + . += overlay_checks() + +/obj/machinery/coffeemaker/proc/overlay_checks() + . = list() + if(coffeepot) + . += "coffeemaker_pot" + if(cartridge) + . += "coffeemaker_cartidge" + return . + +/obj/machinery/coffeemaker/proc/replace_pot(mob/living/user, /obj/item/reagent_containers/food/drinks/bottle/coffeepot) + if(!user) + return FALSE + if(coffeepot) + try_put_in_hand(coffeepot, user) + balloon_alert(user, "replaced pot") + update_appearance(UPDATE_OVERLAYS) + return TRUE + +/obj/machinery/coffeemaker/proc/replace_cartridge(mob/living/user, obj/item/coffee_cartridge/new_cartridge) + if(!user) + return FALSE + if(cartridge) + try_put_in_hand(cartridge, user) + if(new_cartridge) + cartridge = new_cartridge + update_appearance(UPDATE_OVERLAYS) + return TRUE + +/obj/machinery/coffeemaker/wrench_act(mob/living/user, obj/item/tool) + . = ..() + default_unfasten_wrench(user, tool) + return TOOL_ACT_TOOLTYPE_SUCCESS + +/obj/machinery/coffeemaker/attackby(obj/item/attack_item, mob/living/user, params) + //You can only screw open empty grinder + if(!coffeepot && default_deconstruction_screwdriver(user, icon_state, icon_state, attack_item)) + return FALSE + + if(default_deconstruction_crowbar(attack_item)) + return + + if(panel_open) //Can't insert objects when its screwed open + return TRUE + + if (istype(attack_item, /obj/item/reagent_containers/food/drinks/bottle/coffeepot) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container()) + var/obj/item/reagent_containers/food/drinks/bottle/coffeepot/new_pot = attack_item + . = TRUE //no afterattack + if(!user.transferItemToLoc(new_pot, src)) + return TRUE + replace_pot(user, new_pot) + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/glass/coffee_cup) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container()) + var/obj/item/reagent_containers/glass/coffee_cup/new_cup = attack_item + if(new_cup.reagents.total_volume > 0) + balloon_alert(user, "the cup must be empty!") + return + if(coffee_cups >= max_coffee_cups) + balloon_alert(user, "the cup holder is full!") + return + if(!user.transferItemToLoc(attack_item, src)) + return + coffee_cups++ + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/sugar)) + var/obj/item/reagent_containers/food/condiment/pack/sugar/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + balloon_alert(user, "the pack must be full!") + return + if(sugar_packs >= max_sugar_packs) + balloon_alert(user, "the sugar compartment is full!") + return + if(!user.transferItemToLoc(attack_item, src)) + return + sugar_packs++ + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/creamer)) + var/obj/item/reagent_containers/food/condiment/pack/creamer/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + balloon_alert(user, "the pack must be full!") + return + if(creamer_packs >= max_creamer_packs) + balloon_alert(user, "the creamer compartment is full!") + return + if(!user.transferItemToLoc(attack_item, src)) + return + creamer_packs++ + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/astrotame)) + var/obj/item/reagent_containers/food/condiment/pack/astrotame/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + balloon_alert(user, "the pack must be full!") + return + else if(sweetener_packs >= max_sweetener_packs) + balloon_alert(user, "the sweetener compartment is full!") + return + else if(!user.transferItemToLoc(attack_item, src)) + return + sweetener_packs++ + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/coffee_cartridge) && !(attack_item.item_flags & ABSTRACT)) + var/obj/item/coffee_cartridge/new_cartridge = attack_item + if(!user.transferItemToLoc(new_cartridge, src)) + return + replace_cartridge(user, new_cartridge) + balloon_alert(user, "added cartridge") + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + +/obj/machinery/coffeemaker/proc/try_brew() + if(!cartridge) + balloon_alert(usr, "no coffee cartridge inserted!") + return FALSE + if(cartridge.charges < 1) + balloon_alert(usr, "coffee cartridge empty!") + return FALSE + if(!coffeepot) + balloon_alert(usr, "no coffeepot inside!") + return FALSE + if(machine_stat & (NOPOWER|BROKEN)) + balloon_alert(usr, "machine unpowered!") + return FALSE + if(coffeepot.reagents.total_volume >= coffeepot.reagents.maximum_volume) + balloon_alert(usr, "the coffeepot is already full!") + return FALSE + return TRUE + +/obj/machinery/coffeemaker/ui_interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave //I am positively certain that this is not a microwave + . = ..() + + if(brewing || panel_open || !anchored || !user.canUseTopic(src, !issilicon(user))) + return + + var/list/options = list() + + if(coffeepot) + options["Eject Pot"] = radial_eject_pot + + if(cartridge) + options["Eject Cartridge"] = radial_eject_cartridge + + options["Brew"] = radial_brew //brew is always available as an option, when the machine is unable to brew the player is told by balloon alerts whats exactly wrong + + if(coffee_cups > 0) + options["Take Cup"] = radial_take_cup + + if(sugar_packs > 0) + options["Take Sugar"] = radial_take_sugar + + if(sweetener_packs > 0) + options["Take Sweetener"] = radial_take_sweetener + + if(creamer_packs > 0) + options["Take Creamer"] = radial_take_creamer + + if(isAI(user)) + if(machine_stat & NOPOWER) + return + options["Examine"] = radial_examine + + var/choice + + if(length(options) < 1) + return + if(length(options) == 1) + choice = options[1] + else + choice = show_radial_menu(user, src, options, require_near = !issilicon(user)) + + // post choice verification + if(brewing || panel_open || !anchored || !user.canUseTopic(src, !issilicon(user))) + return + + switch(choice) + if("Brew") + brew(user) + if("Eject Pot") + eject_pot(user) + if("Eject Cartridge") + eject_cartridge(user) + if("Examine") + examine(user) + if("Take Cup") + take_cup(user) + if("Take Sugar") + take_sugar(user) + if("Take Sweetener") + take_sweetener(user) + if("Take Creamer") + take_creamer(user) + +/obj/machinery/coffeemaker/proc/eject_pot(mob/user) + if(coffeepot) + replace_pot(user) + +/obj/machinery/coffeemaker/proc/eject_cartridge(mob/user) + if(cartridge) + replace_cartridge(user) + +/obj/machinery/coffeemaker/proc/take_cup(mob/user) + if(!coffee_cups) //shouldn't happen, but we all know how stuff manages to break + balloon_alert(user, "no cups left!") + return + var/obj/item/reagent_containers/glass/coffee_cup/new_cup = new(get_turf(src)) + user.put_in_hands(new_cup) + coffee_cups-- + update_appearance(UPDATE_OVERLAYS) + +/obj/machinery/coffeemaker/proc/take_sugar(mob/user) + if(!sugar_packs) + balloon_alert(user, "no sugar left!") + return + var/obj/item/reagent_containers/food/condiment/pack/sugar/new_pack = new(get_turf(src)) + user.put_in_hands(new_pack) + sugar_packs-- + update_appearance(UPDATE_OVERLAYS) + +/obj/machinery/coffeemaker/proc/take_sweetener(mob/user) + if(!sweetener_packs) + balloon_alert(user, "no sweetener left!") + return + var/obj/item/reagent_containers/food/condiment/pack/astrotame/new_pack = new(get_turf(src)) + user.put_in_hands(new_pack) + sweetener_packs-- + update_appearance(UPDATE_OVERLAYS) + +/obj/machinery/coffeemaker/proc/take_creamer(mob/user) + if(!creamer_packs) + balloon_alert(user, "no creamer left!") + return + var/obj/item/reagent_containers/food/condiment/pack/creamer/new_pack = new(drop_location()) + user.put_in_hands(new_pack) + creamer_packs-- + update_appearance(UPDATE_OVERLAYS) + +///Updates the smoke state to something else, setting particles if relevant +/obj/machinery/coffeemaker/proc/toggle_steam() + QDEL_NULL(particles) + if(brewing) + particles.position = list(-6, 0, 0) + +/obj/machinery/coffeemaker/proc/operate_for(time, silent = FALSE) + brewing = TRUE + if(!silent) + playsound(src, 'sound/machines/coffeemaker_brew.ogg', 20, vary = TRUE) + toggle_steam() + use_power(active_power_usage * time * 0.1) // .1 needed here to convert time (in deciseconds) to seconds such that watts * seconds = joules + addtimer(CALLBACK(src, PROC_REF(stop_operating)), time / speed) + +/obj/machinery/coffeemaker/proc/stop_operating() + brewing = FALSE + toggle_steam() + +/obj/machinery/coffeemaker/proc/brew() + power_change() + if(!try_brew()) + return + operate_for(brew_time) + coffeepot.reagents.add_reagent_list(cartridge.drink_type) + cartridge.charges-- + +//Coffee Cartridges: like toner, but for your coffee! +/obj/item/coffee_cartridge + name = "coffeemaker cartridge- Caffè Generico" + desc = "A coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." + icon = 'icons/obj/machines/coffeemaker.dmi' + icon_state = "cartridge_basic" + var/charges = 4 + var/list/drink_type = list(/datum/reagent/consumable/coffee = 120) + +/obj/item/coffee_cartridge/examine(mob/user) + . = ..() + if(charges) + . += span_warning("The cartridge has [charges] portions of grounds remaining.") + else + . += span_warning("The cartridge has no unspent grounds remaining.") + +/obj/item/coffee_cartridge/fancy + name = "coffeemaker cartridge - Caffè Fantasioso" + desc = "A fancy coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." + icon_state = "cartridge_blend" + +//Here's the joke before I get 50 issue reports: they're all the same, and that's intentional +/obj/item/coffee_cartridge/fancy/Initialize(mapload) + . = ..() + var/coffee_type = pick("blend", "blue_mountain", "kilimanjaro", "mocha") + switch(coffee_type) + if("blend") + name = "coffeemaker cartridge - Miscela di Piccione" + icon_state = "cartridge_blend" + if("blue_mountain") + name = "coffeemaker cartridge - Montagna Blu" + icon_state = "cartridge_blue_mtn" + if("kilimanjaro") + name = "coffeemaker cartridge - Kilimangiaro" + icon_state = "cartridge_kilimanjaro" + if("mocha") + name = "coffeemaker cartridge - Moka Arabica" + icon_state = "cartridge_mocha" + +/obj/item/coffee_cartridge/decaf + name = "coffeemaker cartridge - Caffè Decaffeinato" + desc = "A decaf coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." + icon_state = "cartridge_decaf" + +// no you can't just squeeze the juice bag into a glass! +/obj/item/coffee_cartridge/bootleg + name = "coffeemaker cartridge - Botany Blend" + desc = "A jury-rigged coffee cartridge. Should work with a Modello 3 system, though it might void the warranty." + icon_state = "cartridge_bootleg" + +// blank cartridge for crafting's sake, can be made at the service lathe +/obj/item/blank_coffee_cartridge + name = "blank coffee cartridge" + desc = "A blank coffee cartridge, ready to be filled with coffee paste." + icon = 'icons/obj/machines/coffeemaker.dmi' + icon_state = "cartridge_blank" + +//now, how do you store coffee carts? well, in a rack, of course! +/obj/item/storage/box/coffee_cart_rack + name = "coffeemaker cartridge box" + desc = "A small rack for storing coffeemaker cartridges." + var/cartridge_type = /obj/item/coffee_cartridge + +/obj/item/storage/box/coffee_cart_rack/Initialize(mapload) + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 8 + STR.can_hold = typecacheof(list(/obj/item/coffee_cartridge)) + + +/obj/item/storage/box/coffee_cart_rack/PopulateContents() + for(var/i in 1 to 4) + new cartridge_type(src) + new /obj/item/coffee_cartridge/decaf(src) + new /obj/item/coffee_cartridge/fancy(src) + new /obj/item/coffee_cartridge(src) + +/* + * impressa coffee maker + * its supposed to be a premium line product, so its cargo-only, the board cant be therefore researched + */ + +/obj/machinery/coffeemaker/impressa + name = "impressa coffeemaker" + desc = "An industry-grade Impressa Modello 5 Coffeemaker of the Piccionaia Home Appliances premium coffeemakers product line. Makes coffee from fresh dried whole beans." + icon = 'icons/obj/machines/coffeemaker.dmi' + icon_state = "coffeemaker_impressa" + circuit = /obj/item/circuitboard/machine/coffeemaker/impressa + initial_cartridge = null //no cartridge, just coffee beans + brew_time = 15 SECONDS //industrial grade, its faster than the regular one + density = TRUE + pass_flags = PASSTABLE + /// Current amount of coffee beans stored + var/coffee_amount = 0 + /// List of coffee bean objects are stored + var/list/coffee = list() + +/obj/machinery/coffeemaker/impressa/Initialize(mapload) + . = ..() + if(mapload) + coffeepot = new /obj/item/reagent_containers/food/drinks/bottle/coffeepot(src) + cartridge = null + +/obj/machinery/coffeemaker/impressa/Destroy() + QDEL_NULL(coffeepot) + QDEL_NULL(coffee) + return ..() + +/obj/machinery/coffeemaker/impressa/examine(mob/user) + . = ..() + if(coffee) + . += span_notice("The internal grinder contains [length(coffee)] scoop\s of coffee beans") + +/obj/machinery/coffeemaker/impressa/update_overlays() + . = ..() + . += overlay_checks() + +/obj/machinery/coffeemaker/impressa/overlay_checks() + . = list() + if(coffeepot) + if(coffeepot.reagents.total_volume > 0) + . += "pot_full" + else + . += "pot_empty" + if(coffee_cups > 0) + if(coffee_cups >= max_coffee_cups/3) + if(coffee_cups > max_coffee_cups/1.5) + . += "cups_3" + else + . += "cups_2" + else + . += "cups_1" + if(sugar_packs) + . += "extras_1" + if(creamer_packs) + . += "extras_2" + if(sweetener_packs) + . += "extras_3" + if(coffee_amount) + if(coffee_amount < 0.7*BEAN_CAPACITY) + . += "grinder_half" + else + . += "grinder_full" + return . + +/obj/machinery/coffeemaker/impressa/Exited(atom/movable/gone, direction) + . = ..() + if(gone in coffee) + coffee -= gone + update_appearance(UPDATE_OVERLAYS) + +/obj/machinery/coffeemaker/impressa/try_brew(mob/living/user) + if(coffee_amount <= 0) + balloon_alert(user, "no coffee beans added!") + return FALSE + if(!coffeepot) + balloon_alert(user, "no coffeepot inside!") + return FALSE + if(machine_stat & (NOPOWER|BROKEN)) + balloon_alert(user, "machine unpowered!") + return FALSE + if(coffeepot.reagents.total_volume >= coffeepot.reagents.maximum_volume) + balloon_alert(user, "the coffeepot is already full!") + return FALSE + return TRUE + +/obj/machinery/coffeemaker/impressa/attackby(obj/item/attack_item, mob/living/user, params) + //You can only screw open empty grinder + if(!coffeepot && default_deconstruction_screwdriver(user, icon_state, icon_state, attack_item)) + return + + if(default_deconstruction_crowbar(attack_item)) + return + + if(panel_open) //Can't insert objects when its screwed open + return TRUE + + if (istype(attack_item, /obj/item/reagent_containers/food/drinks/bottle/coffeepot) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container()) + var/obj/item/reagent_containers/food/drinks/bottle/coffeepot/new_pot = attack_item + if(!user.transferItemToLoc(new_pot, src)) + return TRUE + replace_pot(user, new_pot) + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/glass/coffee_cup) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container()) + var/obj/item/reagent_containers/glass/coffee_cup/new_cup = attack_item //different type of cup + if(new_cup.reagents.total_volume > 0) + balloon_alert(user, "the cup must be empty!") + return + if(coffee_cups >= max_coffee_cups) + balloon_alert(user, "the cup holder is full!") + return + if(!user.transferItemToLoc(attack_item, src)) + return + coffee_cups++ + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/sugar)) + var/obj/item/reagent_containers/food/condiment/pack/sugar/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + balloon_alert(user, "the pack must be full!") + return + if(sugar_packs >= max_sugar_packs) + balloon_alert(user, "the sugar compartment is full!") + return + if(!user.transferItemToLoc(attack_item, src)) + return + sugar_packs++ + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/creamer)) + var/obj/item/reagent_containers/food/condiment/pack/creamer/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + balloon_alert(user, "the pack must be full!") + return + if(creamer_packs >= max_creamer_packs) + balloon_alert(user, "the creamer compartment is full!") + return + if(!user.transferItemToLoc(attack_item, src)) + return + creamer_packs++ + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/astrotame)) + var/obj/item/reagent_containers/food/condiment/pack/astrotame/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + balloon_alert(user, "the pack must be full!") + return + if(sweetener_packs >= max_sweetener_packs) + balloon_alert(user, "the sweetener compartment is full!") + return + if(!user.transferItemToLoc(attack_item, src)) + return + sweetener_packs++ + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + + if (istype(attack_item, /obj/item/reagent_containers/food/snacks/grown/coffee) && !(attack_item.item_flags & ABSTRACT)) + if(coffee_amount >= BEAN_CAPACITY) + balloon_alert(user, "the coffee container is full!") + return + var/obj/item/reagent_containers/food/snacks/grown/coffee/new_coffee = attack_item + if(!user.transferItemToLoc(new_coffee, src)) + return + coffee += new_coffee + coffee_amount++ + balloon_alert(user, "added coffee") + + + if (istype(attack_item, /obj/item/storage/box/coffeepack)) + if(coffee_amount >= BEAN_CAPACITY) + balloon_alert(user, "the coffee container is full!") + return + var/obj/item/storage/box/coffeepack/new_coffee_pack = attack_item + for(var/obj/item/reagent_containers/food/snacks/grown/coffee/new_coffee in new_coffee_pack.contents) + if(coffee_amount < BEAN_CAPACITY) + if(user.transferItemToLoc(new_coffee, src)) + coffee += new_coffee + coffee_amount++ + new_coffee.forceMove(src) + balloon_alert(user, "added coffee") + update_appearance(UPDATE_OVERLAYS) + else + return + update_appearance(UPDATE_OVERLAYS) + return TRUE //no afterattack + +/obj/machinery/coffeemaker/impressa/take_cup(mob/user) + if(!coffee_cups) //shouldn't happen, but we all know how stuff manages to break + balloon_alert(user, "no cups left!") + return + balloon_alert_to_viewers("took cup") + var/obj/item/reagent_containers/food/drinks/coffee/new_cup = new(get_turf(src)) + user.put_in_hands(new_cup) + coffee_cups-- + update_appearance(UPDATE_OVERLAYS) + +/obj/machinery/coffeemaker/impressa/toggle_steam() + QDEL_NULL(particles) + if(brewing) + particles.position = list(-2, 1, 0) + +/obj/machinery/coffeemaker/impressa/brew() + power_change() + if(!try_brew()) + return + operate_for(brew_time) + coffeepot.reagents.add_reagent_list(list(/datum/reagent/consumable/coffee = 120)) + coffee.Cut(1,2) //remove the first item from the list + coffee_amount-- + update_appearance(UPDATE_OVERLAYS) + +#undef BEAN_CAPACITY diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 3a7c7245955c..fad3c3bc963f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -186,7 +186,7 @@ newmeat.name = "[sourcename] [newmeat.name]" if(istype(newmeat)) newmeat.subjectname = sourcename - newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, sourcenutriment / meat_produced) // Thehehe. Fat guys go first + newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, sourcenutriment / meat_produced) if(occupant_volume) occupant.reagents.trans_to(newmeat, occupant_volume / meat_produced, remove_blacklisted = TRUE) if(sourcejob) @@ -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..acd768347327 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -237,6 +237,18 @@ required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/ethanol/irish_cream = 3, /datum/reagent/consumable/ethanol/beer = 2) required_catalysts = list(/datum/reagent/consumable/ethanol/creme_de_cacao = 1) +/datum/chemical_reaction/bullet_hell + results = list(/datum/reagent/consumable/ethanol/bullethell = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/creme_de_coconut = 5, /datum/reagent/fuel = 2, /datum/reagent/consumable/ethanol/absinthe = 3) + +/datum/chemical_reaction/shotinthedark + results = list(/datum/reagent/consumable/ethanol/shotinthedark = 10) + required_reagents = list(/datum/reagent/consumable/ethanol/creme_de_coconut = 5, /datum/reagent/consumable/ethanol/tequila = 5, /datum/reagent/gold = 3) + +/datum/chemical_reaction/homesick + results = list(/datum/reagent/consumable/ethanol/homesick = 15) + required_reagents = list(/datum/reagent/consumable/ethanol/creme_de_coconut = 5, /datum/reagent/consumable/cream = 5, /datum/reagent/consumable/ethanol/creme_de_menthe = 5) + ////DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri///// /datum/chemical_reaction/sbiten @@ -634,19 +646,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/food_and_drinks/recipes/tablecraft/recipes_frozen.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm index 588eb863fbd7..92647559d9cd 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm @@ -296,8 +296,8 @@ result = /obj/item/reagent_containers/food/snacks/popsicle/jumbo subcategory = CAT_ICE -/datum/crafting_recipe/food/nogga_black - name = "Nogga black" +/datum/crafting_recipe/food/licorice + name = "Licorice icecream" reqs = list( /obj/item/popsicle_stick = 1, /datum/reagent/consumable/blumpkinjuice = 4, //natural source of ammonium chloride @@ -307,5 +307,5 @@ /datum/reagent/consumable/vanilla = 2, /datum/reagent/consumable/sugar = 2 ) - result = /obj/item/reagent_containers/food/snacks/popsicle/nogga_black + result = /obj/item/reagent_containers/food/snacks/popsicle/licorice subcategory = CAT_ICE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index bd7aec4ed422..72f2046a3b84 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -29,15 +29,6 @@ result = /obj/item/reagent_containers/food/snacks/kebab/tofu subcategory = CAT_MEAT -/datum/crafting_recipe/food/tailkebab - name = "lizard tail kebab" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/organ/tail/lizard = 1 - ) - result = /obj/item/reagent_containers/food/snacks/kebab/tail - subcategory = CAT_MEAT - /datum/crafting_recipe/food/fiestaskewer name = "Fiesta Skewer" reqs = list( 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 c7a911b6cf3f..e6a1c90ede6e 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -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..a91ad2b90050 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -7,6 +7,7 @@ anchored = FALSE pressure_resistance = 2 * ONE_ATMOSPHERE max_integrity = 300 + var/closed_state = "barrel" var/open = FALSE var/speed_multiplier = 1 //How fast it distills. Defaults to 100% (1.0). Lower is better. @@ -48,7 +49,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()) @@ -70,14 +71,13 @@ /obj/structure/fermenting_barrel/update_icon_state() if(open) - icon_state = "barrel_open" + icon_state = closed_state+"_open" else - icon_state = "barrel" + icon_state = closed_state 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" + closed_state = "distiller" + desc = "A repurposed barrel and keg host to a special culture of bacteria native to Illestren" 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/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm index 1b6b58139dcc..aa98c26c5a32 100644 --- a/code/modules/instruments/songs/play_legacy.dm +++ b/code/modules/instruments/songs/play_legacy.dm @@ -84,7 +84,7 @@ var/mob/M = i if(user && HAS_TRAIT(user, TRAIT_MUSICIAN) && isliving(M)) var/mob/living/L = M - L.apply_status_effect(STATUS_EFFECT_GOOD_MUSIC) + L.apply_status_effect(/datum/status_effect/good_music) if(!(M?.client?.prefs?.toggles & SOUND_INSTRUMENTS)) continue M.playsound_local(source, null, volume * using_instrument.volume_multiplier, S = music_played) diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm index fbe146bd793f..3f7bb2542103 100644 --- a/code/modules/instruments/songs/play_synthesized.dm +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -64,7 +64,7 @@ var/mob/M = i if(user && HAS_TRAIT(user, TRAIT_MUSICIAN) && isliving(M)) var/mob/living/L = M - L.apply_status_effect(STATUS_EFFECT_GOOD_MUSIC) + L.apply_status_effect(/datum/status_effect/good_music) if(!(M?.client?.prefs?.toggles & SOUND_INSTRUMENTS)) continue M.playsound_local(get_turf(parent), null, volume, FALSE, K.frequency, null, channel, null, copy) 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..9cf57432b4ea 100644 --- a/code/modules/jobs/job_exp.dm +++ b/code/modules/jobs/job_exp.dm @@ -45,6 +45,7 @@ GLOBAL_PROTECT(exp_to_update) return FALSE if(CONFIG_GET(flag/use_exp_restrictions_admin_bypass) && check_rights_for(src, R_ADMIN)) return FALSE // if admin exemption is enabled, and client is an admin, let them through + return TRUE /client/proc/get_exp_living(pure_numeric = FALSE) if(!prefs.exp) @@ -191,7 +192,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..8035212c27c6 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -64,7 +64,7 @@ Assistant uniform = /obj/item/clothing/under/color/white accessory = /obj/item/clothing/accessory/armband/science -/datum/outfit/job/assistant/engineeringspecialist +/datum/outfit/job/assistant/deckhand name = "Assistant (Deckhand)" accessory = /obj/item/clothing/accessory/armband/cargo @@ -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 42be4234f7f6..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,20 +62,10 @@ 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)" @@ -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 2e97961b7fcb..0e53b00c1670 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -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 @@ -147,4 +123,4 @@ suit = /obj/item/clothing/suit/jacket/leather/duster glasses = /obj/item/clothing/glasses/hud/spacecop accessory = /obj/item/clothing/accessory/holster - head = /obj/item/clothing/head/beret/lt + head = /obj/item/clothing/head/beret/command 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..1b989c847ba6 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -45,30 +45,6 @@ //Shiptest outfits -/datum/outfit/job/paramedic/traumateam - name = "Paramedic (Trauma Team Technician)" - - uniform = /obj/item/clothing/under/rank/security/brig_phys - shoes = /obj/item/clothing/shoes/combat - 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..16a42b26211c 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)" @@ -166,7 +164,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S name = "Minuteman (Colonial Minutemen) (Armed)" suit_store = /obj/item/gun/ballistic/automatic/assault/p16/minutemen - belt = /obj/item/storage/belt/military/minutemen/loaded + belt = /obj/item/storage/belt/military/minutemen/p16 /datum/outfit/job/security/minutemen/mechpilot name = "Mech Pilot (Colonial Minutemen)" @@ -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..cc5ec142932e 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -27,7 +27,8 @@ backpack_contents = list( /obj/item/flashlight/seclite=1,\ /obj/item/kitchen/knife/combat/survival=1,\ - /obj/item/stack/marker_beacon/ten=1) + /obj/item/stack/marker_beacon/ten=1,\ + /obj/item/radio/weather_monitor=1) backpack = /obj/item/storage/backpack/explorer satchel = /obj/item/storage/backpack/satchel/explorer @@ -90,43 +91,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 +126,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..7be829dbe619 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -78,7 +78,7 @@ name = "Field Commander (Colonial Minutemen) (Armed)" suit_store = /obj/item/gun/ballistic/automatic/assault/p16/minutemen - belt = /obj/item/storage/belt/military/minutemen/loaded + belt = /obj/item/storage/belt/military/minutemen/p16 backpack_contents = list(/obj/item/melee/classic_baton=1, /obj/item/gun/ballistic/automatic/pistol/commander=1, /obj/item/restraints/handcuffs=1, /obj/item/gun/energy/e_gun/advtaser=1) @@ -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/jobs/jobs.dm b/code/modules/jobs/jobs.dm index d1b930174490..6484b22963ba 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -97,7 +97,7 @@ GLOBAL_LIST_INIT(exp_jobsmap, list( GLOBAL_LIST_INIT(exp_specialmap, list( EXP_TYPE_LIVING = list(), // all living mobs EXP_TYPE_ANTAG = list(), - EXP_TYPE_SPECIAL = list("Lifebringer","Ash Walker","Exile","Servant Golem","Free Golem","Hermit","Translocated Vet","Escaped Prisoner","Hotel Staff","SuperFriend","Space Syndicate","Ancient Crew","Space Doctor","Space Bartender","Beach Bum","Skeleton","Zombie","Space Bar Patron","Lavaland Syndicate","Ghost Role"), // Ghost roles + EXP_TYPE_SPECIAL = list("Lifebringer","Ash Walker","Exile","Hermit","Translocated Vet","Escaped Prisoner","Hotel Staff","SuperFriend","Space Syndicate","Ancient Crew","Space Doctor","Space Bartender","Beach Bum","Skeleton","Zombie","Space Bar Patron","Lavaland Syndicate","Ghost Role"), // Ghost roles EXP_TYPE_GHOST = list() // dead people, observers )) diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index 61570535cbbf..7b51b433adde 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -341,28 +341,6 @@ Key procs spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), /datum/language/draconic = list(LANGUAGE_ATOM)) -/datum/language_holder/golem - understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM)) - spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM)) - -/datum/language_holder/golem/bone - understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM), - /datum/language/calcic = list(LANGUAGE_ATOM)) - spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM), - /datum/language/calcic = list(LANGUAGE_ATOM)) - -/datum/language_holder/golem/runic - understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM), - /datum/language/narsie = list(LANGUAGE_ATOM)) - spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/terrum = list(LANGUAGE_ATOM), - /datum/language/narsie = list(LANGUAGE_ATOM)) - /datum/language_holder/fly understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), /datum/language/buzzwords = list(LANGUAGE_ATOM)) diff --git a/code/modules/language/terrum.dm b/code/modules/language/terrum.dm deleted file mode 100644 index 04f1ad740821..000000000000 --- a/code/modules/language/terrum.dm +++ /dev/null @@ -1,19 +0,0 @@ -/datum/language/terrum - name = "Terrum" - desc = "The language of the golems. Sounds similar to old-earth Hebrew." - speech_verb = "rumbles" - ask_verb = "questions" - exclaim_verb = "tremors" - sing_verb = "yodels" - flags = LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD //WS Edit- Language icon hiding - key = "g" - space_chance = 40 - syllables = list( - "sha", "vu", "nah", "ha", "yom", "ma", "cha", "ar", "et", "mol", "lua", - "ch", "na", "sh", "ni", "yah", "bes", "ol", "hish", "ev", "la", "ot", "la", - "khe", "tza", "chak", "hak", "hin", "hok", "lir", "tov", "yef", "yfe", - "cho", "ar", "kas", "kal", "ra", "lom", "im", "'", "'", "'", "'", "bok", - "erev", "shlo", "lo", "ta", "im", "yom" - ) - icon_state = "golem" - default_priority = 90 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/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..ca20f8035a62 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() . = ..() @@ -64,11 +64,16 @@ /obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user) if(I.tool_behaviour == TOOL_CROWBAR) if(LAZYLEN(trophies)) - to_chat(user, "You remove [src]'s trophies.") - I.play_tool_sound(src) - for(var/t in trophies) - var/obj/item/crusher_trophy/T = t - T.remove_from(src, user) + var/list/choose_options = list() + for(var/obj/item/crusher_trophy/T in trophies) + choose_options += list(T.name = image(icon = T.icon, icon_state = T.icon_state)) + var/picked_option = show_radial_menu(user, src, choose_options, radius = 38, require_near = TRUE) + if(picked_option) + to_chat(user, "You remove [picked_option].") + I.play_tool_sound(src) + for(var/obj/item/crusher_trophy/T in trophies) + if(T.name == picked_option) + T.remove_from(src, user) else to_chat(user, "There are no trophies on [src].") else if(istype(I, /obj/item/crusher_trophy)) @@ -82,7 +87,9 @@ to_chat(user, "[src] is too heavy to use with one hand! You fumble and drop everything.") user.drop_all_held_items() return - var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + var/datum/status_effect/crusher_damage/C = target.has_status_effect(/datum/status_effect/crusher_damage) + if(!C) + C = target.apply_status_effect(/datum/status_effect/crusher_damage) var/target_health = target.health ..() for(var/t in trophies) @@ -111,14 +118,16 @@ 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 - var/datum/status_effect/crusher_mark/CM = L.has_status_effect(STATUS_EFFECT_CRUSHERMARK) - if(!CM || CM.hammer_synced != src || !L.remove_status_effect(STATUS_EFFECT_CRUSHERMARK)) + var/datum/status_effect/crusher_mark/CM = L.has_status_effect(/datum/status_effect/crusher_mark) + if(!CM || CM.hammer_synced != src || !L.remove_status_effect(/datum/status_effect/crusher_mark)) return - var/datum/status_effect/crusher_damage/C = L.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + var/datum/status_effect/crusher_damage/C = L.has_status_effect(/datum/status_effect/crusher_damage) + if(!C) + C = L.apply_status_effect(/datum/status_effect/crusher_damage) var/target_health = L.health for(var/t in trophies) var/obj/item/crusher_trophy/T = t @@ -181,8 +190,8 @@ /obj/projectile/destabilizer/on_hit(atom/target, blocked = FALSE) if(isliving(target)) var/mob/living/L = target - var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean - var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced) + var/had_effect = (L.has_status_effect(/datum/status_effect/crusher_mark)) //used as a boolean + var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(/datum/status_effect/crusher_mark, hammer_synced) if(hammer_synced) for(var/t in hammer_synced.trophies) var/obj/item/crusher_trophy/T = t @@ -352,7 +361,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 +414,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 @@ -515,7 +524,7 @@ return "waveform collapse to grant stun immunity and 90% damage reduction for 1 second" /obj/item/crusher_trophy/miner_eye/on_mark_detonation(mob/living/target, mob/living/user) - user.apply_status_effect(STATUS_EFFECT_BLOODDRUNK) + user.apply_status_effect(/datum/status_effect/blooddrunk) //whelp /obj/item/crusher_trophy/tail_spike @@ -538,7 +547,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 +581,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 +649,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/miningradio.dm b/code/modules/mining/equipment/miningradio.dm new file mode 100644 index 000000000000..a0bef397d8ca --- /dev/null +++ b/code/modules/mining/equipment/miningradio.dm @@ -0,0 +1,23 @@ +/// Portable mining radio purchasable by miners +/obj/item/radio/weather_monitor + icon = 'icons/obj/miningradio.dmi' + name = "mining weather radio" + icon_state = "miningradio" + desc = "A weather radio designed for use in inhospitable environments. Gives audible warnings when storms approach." + luminosity = 1 + light_power = 1 + light_range = 1.6 + +/obj/item/radio/weather_monitor/update_overlays() + . = ..() + . += emissive_appearance(icon, "small_emissive", src, alpha = src.alpha) + +/obj/item/radio/weather_monitor/Initialize(mapload) + . = ..() + AddComponent( \ + /datum/component/weather_announcer, \ + state_normal = "weatherwarning", \ + state_warning = "urgentwarning", \ + state_danger = "direwarning", \ + ) + set_frequency(FREQ_COMMON) diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index bcf062d358f0..49cd95f80c97 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) @@ -62,7 +62,12 @@ if(inert) to_chat(owner, "[src] breaks down as it tries to activate.") else - owner.revive(full_heal = TRUE, admin_revive = FALSE) + owner.adjustBruteLoss(-100) //previously heal proc + owner.adjustFireLoss(-100) + owner.adjustOxyLoss(-50) + owner.adjustToxLoss(-50) + if(owner.dna.species.id != SPECIES_IPC) + owner.adjustCloneLoss(10) //dont abuse it or take cloneloss (organic only) qdel(src) /obj/item/organ/regenerative_core/on_life() @@ -87,7 +92,7 @@ else to_chat(user, "You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?") SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) - H.apply_status_effect(STATUS_EFFECT_REGENERATIVE_CORE) + H.apply_status_effect(/datum/status_effect/regenerative_core) SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "core", /datum/mood_event/healsbadman) //Now THIS is a miner buff (fixed - nerf) qdel(src) @@ -186,7 +191,7 @@ else to_chat(user, "You start to apply [src] on yourself. Cancer like crystals hold you together and add something to you to keep yourself moving, but for how long?") SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) - H.apply_status_effect(STATUS_EFFECT_REGENERATIVE_CORE) + H.apply_status_effect(/datum/status_effect/regenerative_core) H.reagents.add_reagent(/datum/reagent/determination, 4) SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "core", /datum/mood_event/healsbadman) //Now THIS is a miner buff (fixed - nerf) qdel(src) 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..2af4c1b5ce4f 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -1,7 +1,7 @@ /**********************Jaunter**********************/ /obj/item/wormhole_jaunter name = "wormhole jaunter" - desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to bluespace for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least.\nThanks to modifications provided by the Free Golems, this jaunter can be worn on the belt to provide protection from chasms." + desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to bluespace for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least.\nThis jaunter has been modified to fit on your belt, providing you protection from chasms." icon = 'icons/obj/mining.dmi' icon_state = "Jaunter" item_state = "electronic" @@ -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..0bade04d3fe8 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() @@ -458,18 +458,7 @@ desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point." icon = 'icons/obj/lavaland/ash_flora.dmi' icon_state = "mushroom_bowl" - -/obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_overlays() - . = ..() - if(reagents && reagents.total_volume) - var/mutable_appearance/filling = mutable_appearance('icons/obj/lavaland/ash_flora.dmi', "fullbowl") - filling.color = mix_color_from_reagents(reagents.reagent_list) - . += filling - -/obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_icon_state() - if(!reagents || !reagents.total_volume) - icon_state = "mushroom_bowl" - return ..() + fill_icon = 'icons/obj/lavaland/ash_flora.dmi' /obj/item/reagent_containers/glass/bowl/mushroom_bowl/attackby(obj/item/I,mob/user, params) if(istype(I, /obj/item/reagent_containers/food/snacks)) @@ -496,7 +485,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..d078910881ed 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -243,7 +243,7 @@ return var/mob/living/carbon/itemUser = user usedHand = itemUser.get_held_index_of_item(src) - if(itemUser.has_status_effect(STATUS_EFFECT_HIPPOCRATIC_OATH)) + if(itemUser.has_status_effect(/datum/status_effect/hippocratic_oath)) to_chat(user, "You can't possibly handle the responsibility of more than one rod!") return var/failText = "The snake seems unsatisfied with your incomplete oath and returns to its previous place on the rod, returning to its dormant, wooden state. You must stand still while completing your oath!" @@ -269,7 +269,7 @@ to_chat(itemUser, failText) return to_chat(itemUser, "The snake, satisfied with your oath, attaches itself and the rod to your forearm with an inseparable grip. Your thoughts seem to only revolve around the core idea of helping others, and harm is nothing more than a distant, wicked memory...") - var/datum/status_effect/hippocraticOath/effect = itemUser.apply_status_effect(STATUS_EFFECT_HIPPOCRATIC_OATH) + var/datum/status_effect/hippocratic_oath/effect = itemUser.apply_status_effect(/datum/status_effect/hippocratic_oath) effect.hand = usedHand activated() @@ -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) @@ -1233,9 +1233,9 @@ user.changeNext_move(CLICK_CD_MELEE * 0.5) //when closed, it attacks very rapidly /obj/item/melee/transforming/cleaving_saw/nemesis_effects(mob/living/user, mob/living/target) - var/datum/status_effect/stacking/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED) + var/datum/status_effect/stacking/saw_bleed/B = target.has_status_effect(/datum/status_effect/stacking/saw_bleed) if(!B) - target.apply_status_effect(STATUS_EFFECT_SAWBLEED,bleed_stacks_per_hit) + target.apply_status_effect(/datum/status_effect/stacking/saw_bleed,bleed_stacks_per_hit) else B.add_stacks(bleed_stacks_per_hit) @@ -1385,7 +1385,7 @@ switch(random) if(1) - to_chat(user, "Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities.") + to_chat(user, "Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a dragon without the cool abilities.") H.dna.features = list("mcolor" = "A02720", "tail_lizard" = "Dark Tiger", "tail_human" = "None", "face_markings" = "None", "horns" = "Curled", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "Long", "body_markings" = "Dark Tiger Body", "legs" = "Digitigrade Legs") H.eye_color = "fee5a3" H.set_species(/datum/species/lizard) @@ -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/lavaland/ruins/gym.dm b/code/modules/mining/lavaland/ruins/gym.dm index 8a73aff51a69..a7f2f8e59d29 100644 --- a/code/modules/mining/lavaland/ruins/gym.dm +++ b/code/modules/mining/lavaland/ruins/gym.dm @@ -17,7 +17,7 @@ if(isliving(user)) var/mob/living/L = user SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) - L.apply_status_effect(STATUS_EFFECT_EXERCISED) + L.apply_status_effect(/datum/status_effect/exercised) /obj/structure/weightmachine name = "weight machine" @@ -63,7 +63,7 @@ var/finishmessage = pick("You feel stronger!","You feel like you can take on the world!","You feel robust!","You feel indestructible!") SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) to_chat(user, finishmessage) - user.apply_status_effect(STATUS_EFFECT_EXERCISED) + user.apply_status_effect(/datum/status_effect/exercised) /obj/structure/weightmachine/stacklifter name = "chest press machine" 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/machine_vending.dm b/code/modules/mining/machine_vending.dm index 03a6a9fb39a1..ba2a1c6984a4 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -127,79 +127,10 @@ /obj/item/stack/sheet/rglass = 1, /obj/item/vending_refill/mining_equipment = 1) -/obj/item/circuitboard/machine/vending/mining_equipment/golem - name = "golem equipment vendor (Machine Board)" - build_path = /obj/machinery/vending/mining_equipment/golem - /obj/item/vending_refill/mining_equipment machine_name = "mining equipment vendor" icon_state = "mining-refill" -/obj/item/vending_refill/mining_equipment_golem - machine_name = "golem equipment vendor" - icon_state = "mining-refill" - - -/obj/machinery/vending/mining_equipment/golem - name = "golem equipment vendor" - desc = "An modified equipment vendor which appears to be a prototype of the current mining equipment vendor. Ore Redemption Points can be spent here to purchase rough-and-tumble goods." - circuit = /obj/item/circuitboard/machine/vending/mining_equipment - refill_canister = /obj/item/vending_refill/mining_equipment_golem - products = list( //if you add something to this, please, for the love of god, sort it by price/type. use tabs and not spaces. - /obj/item/stack/marker_beacon/thirty = 6, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 3, - /obj/item/storage/box/gum/bubblegum = 5, - /obj/item/clothing/mask/cigarette/cigar/havana = 3, - /obj/item/soap/nanotrasen = 1, - /obj/item/hivelordstabilizer = 6, - /obj/item/fulton_core = 1, - /obj/item/survivalcapsule = 3, - /obj/item/storage/belt/mining = 3, - /obj/item/card/mining_point_card = 5, - /obj/item/reagent_containers/hypospray/medipen/survival = 6, - /obj/item/storage/firstaid/brute = 3, - /obj/item/storage/box/minertracker = 5, - /obj/item/wormhole_jaunter = 3, - /obj/item/kinetic_crusher = 1, - /obj/item/gun/energy/kinetic_accelerator = 3, - /obj/item/mining_scanner = 5, - /obj/item/t_scanner/adv_mining_scanner = 2, - /obj/item/resonator = 3, - /obj/item/extraction_pack = 3, - /obj/item/lazarus_injector = 1, - /obj/item/pickaxe/silver = 3, - /obj/item/storage/backpack/duffelbag/mining_conscript = 3, - /obj/item/tank/jetpack/suit = 3, - /obj/item/spacecash/bundle/c1000 = 5, - /obj/item/clothing/suit/space/hardsuit/mining/independent = 3, - /obj/item/resonator/upgraded = 1, - /obj/item/clothing/shoes/bhop = 3, - /obj/item/survivalcapsule/luxury = 3, - /mob/living/simple_animal/hostile/mining_drone = 3, - /obj/item/mine_bot_upgrade = 3, - /obj/item/mine_bot_upgrade/health = 3, - /obj/item/borg/upgrade/modkit/cooldown/minebot = 3, - /obj/item/slimepotion/slime/sentience/mining = 1, - /obj/item/borg/upgrade/modkit/minebot_passthrough = 3, - /obj/item/borg/upgrade/modkit/tracer = 3, - /obj/item/borg/upgrade/modkit/tracer/adjustable = 3, - /obj/item/borg/upgrade/modkit/chassis_mod = 3, - /obj/item/borg/upgrade/modkit/range = 3, - /obj/item/borg/upgrade/modkit/damage = 3, - /obj/item/borg/upgrade/modkit/cooldown = 3, - /obj/item/borg/upgrade/modkit/aoe/mobs = 2, - // golem extra things - /obj/item/card/id/mining = 5, - /obj/item/clothing/glasses/science = 5, - /obj/item/reagent_containers/food/snacks/monkeycube = 5, - /obj/item/storage/belt/utility = 3, - /obj/item/bedsheet/rd/royal_cape = 3, - /obj/item/slime_extract/grey = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 4, - /obj/item/storage/box/rndboards = 1 - - ) - /**********************Mining Equipment Voucher**********************/ /obj/item/mining_voucher 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/ship_select.dm b/code/modules/mob/dead/new_player/ship_select.dm index 0ace7574101a..1515aa82f799 100644 --- a/code/modules/mob/dead/new_player/ship_select.dm +++ b/code/modules/mob/dead/new_player/ship_select.dm @@ -71,6 +71,9 @@ return var/datum/map_template/shuttle/template = SSmapping.ship_purchase_list[params["name"]] + if(SSovermap.ship_spawning) + to_chat(spawnee, "A ship is currently spawning. Try again in a little while.") + return if(!SSovermap.player_ship_spawn_allowed()) to_chat(spawnee, "No more ships may be spawned at this time!") return @@ -104,6 +107,10 @@ to_chat(spawnee, "Ship spawned, but you were unable to be spawned. You can likely try to spawn in the ship through joining normally, but if not, please contact an admin.") spawnee.new_player_panel() +/datum/ship_select/ui_data(mob/user) + . = list() + .["shipSpawning"] = SSovermap.ship_spawning + /datum/ship_select/ui_static_data(mob/user) // tracks the number of existing ships of each template type so that their unavailability for purchase can be communicated to the user var/list/template_num_lookup = list() @@ -112,6 +119,8 @@ .["ships"] = list() .["shipSpawnAllowed"] = SSovermap.player_ship_spawn_allowed() .["purchaseBanned"] = is_banned_from(user.ckey, "Ship Purchasing") + // if the player has a client which is not eligible for playtime restriction (for admin + player DB flag playtime exemption), they "auto meet" playtime requirements + .["autoMeet"] = user.client && !user.client.is_playtime_restriction_eligible() .["playMin"] = user.client ? user.client.get_exp_living(TRUE) : 0 for(var/datum/overmap/ship/controlled/S as anything in SSovermap.controlled_ships) 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..c39eaf4ef499 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 @@ -47,23 +47,23 @@ return L /datum/sprite_accessory - var/icon //the icon file the accessory is located in - var/icon_state //the icon_state of the accessory - var/name //the preview name of the accessory - var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations - 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/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. - var/image_alpha = 255 //The alpha for the accessory to use. + var/icon //the icon file the accessory is located in + var/icon_state //the icon_state of the accessory + var/name //the preview name of the accessory + var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations + 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/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. + var/image_alpha = 255 //The alpha for the accessory to use. var/dimension_x = 32 var/dimension_y = 32 - var/body_zone = BODY_ZONE_CHEST //!The body zone this accessory affects - var/synthetic_icon_state //!The icon_state to use when the bodypart it's attached to is synthetic - var/synthetic_color_src //!The color src to use instead of the normal src when synthetic, leave blank to use the normal src + var/body_zone = BODY_ZONE_CHEST //The body zone this accessory affects + var/synthetic_icon_state //The icon_state to use when the bodypart it's attached to is synthetic + var/synthetic_color_src //The color src to use instead of the normal src when synthetic, leave blank to use the normal src //Squids AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA whyyyy /datum/sprite_accessory/squid_face 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/ipc.dm b/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm index b25cd222115a..20f2fe732d31 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm @@ -170,6 +170,10 @@ name = "Color Test" icon_state = "tv" +/datum/sprite_accessory/ipc_screens/badapple + name = "Old Animation" + icon_state = "bad_apple" + // Start antennas /datum/sprite_accessory/ipc_antennas 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..3309212c4852 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm @@ -20,68 +20,62 @@ name = "Light Belly" icon_state = "lbelly" +/datum/sprite_accessory/body_markings/cracks + name = "Cracks" + icon_state = "cracks" + //Start tails /datum/sprite_accessory/tails icon = 'icons/mob/species/lizard/tails.dmi' body_zone = BODY_ZONE_CHEST - synthetic_icon_state = "synth" + secondary_color = TRUE /datum/sprite_accessory/tails_animated icon = 'icons/mob/species/lizard/tails.dmi' + secondary_color = TRUE body_zone = BODY_ZONE_CHEST /datum/sprite_accessory/tails/lizard/smooth - name = "Smooth" + name = "Smooth (Two color)" icon_state = "smooth" /datum/sprite_accessory/tails_animated/lizard/smooth - name = "Smooth" + name = "Smooth (Two color)" icon_state = "smooth" -/datum/sprite_accessory/tails/lizard/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - -/datum/sprite_accessory/tails_animated/lizard/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - -/datum/sprite_accessory/tails/lizard/ltiger - name = "Light Tiger" - icon_state = "ltiger" +/datum/sprite_accessory/tails/lizard/smooth_onecolor + name = "Smooth (One color)" + icon_state = "smooth2" + secondary_color = FALSE -/datum/sprite_accessory/tails_animated/lizard/ltiger - name = "Light Tiger" - icon_state = "ltiger" +/datum/sprite_accessory/tails_animated/lizard/smooth_onecolor + name = "Smooth (One color)" + icon_state = "smooth2" -/datum/sprite_accessory/tails/lizard/spikes - name = "Spikes" - icon_state = "spikes" +/datum/sprite_accessory/tails/lizard/prosthetic + name = "Prosthetic" + icon_state = "synth" -/datum/sprite_accessory/tails_animated/lizard/spikes - name = "Spikes" - icon_state = "spikes" +/datum/sprite_accessory/tails_animated/lizard/prosthetic + name = "Prosthetic" + icon_state = "synth" /datum/sprite_accessory/tails/lizard/large name = "Large" icon_state = "large" - synthetic_icon_state = "large" //fight me /datum/sprite_accessory/tails_animated/lizard/large name = "Large" icon_state = "large" - synthetic_icon_state = "large" /datum/sprite_accessory/tails/lizard/small name = "Small" icon_state = "small" - synthetic_icon_state = "none" /datum/sprite_accessory/tails_animated/lizard/small name = "Small" icon_state = "small" - synthetic_icon_state = "none" //Start Face markings @@ -107,6 +101,10 @@ name = "Alligator Skink" icon_state = "eye" +/datum/sprite_accessory/face_markings/dome + name = "Dome" + icon_state = "dome" + //Start Horns /datum/sprite_accessory/horns @@ -164,36 +162,32 @@ /datum/sprite_accessory/frills icon = 'icons/mob/species/lizard/frills.dmi' + secondary_color = TRUE /datum/sprite_accessory/frills/none name = "None" icon_state = "none" -//Ears are here because having frills+ears would overlap and be weird. -/datum/sprite_accessory/frills/ears - name = "Normal ears" - icon_state = "ears" - hasinner = TRUE -//End ears -/datum/sprite_accessory/frills/simple - name = "Simple" - icon_state = "simple" -/datum/sprite_accessory/frills/short - name = "Short" - icon_state = "short" +//Ears are here because having frills+ears would overlap and be weird. /datum/sprite_accessory/frills/aquatic name = "Aquatic" icon_state = "aqua" -/datum/sprite_accessory/frills/frillhawk - name = "Frillhawk" - icon_state = "frillhawk" - /datum/sprite_accessory/frills/droopy name = "Droopy" icon_state = "droopy" +/datum/sprite_accessory/frills/ears + name = "Normal ears" + icon_state = "ears" + +//End ears + +/datum/sprite_accessory/frills/frillhawk + name = "Frillhawk" + icon_state = "frillhawk" + /datum/sprite_accessory/frills/neck name = "Neck" icon_state = "neck" @@ -202,13 +196,21 @@ name = "Frilled Dragon" icon_state = "neckbig" +/datum/sprite_accessory/frills/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/frills/simple + name = "Simple" + icon_state = "simple" + //Start Spines /datum/sprite_accessory/spines - icon = 'icons/mob/species/lizard/tails.dmi' + icon = 'icons/mob/species/lizard/spines.dmi' /datum/sprite_accessory/spines_animated - icon = 'icons/mob/species/lizard/tails.dmi' + icon = 'icons/mob/species/lizard/spines.dmi' /datum/sprite_accessory/spines/none name = "None" 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/new_player/sprite_accessories/underwear/underwear_torso.dm b/code/modules/mob/dead/new_player/sprite_accessories/underwear/underwear_torso.dm index c71feb42c6de..187bd4ce569e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/underwear/underwear_torso.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/underwear/underwear_torso.dm @@ -112,6 +112,11 @@ icon_state = "tank_fire" use_static = TRUE +/datum/sprite_accessory/undershirt/rilena + name = "T-Shirt (RILENA)" + icon_state = "rilena" + use_static = TRUE + // Pride shirts /datum/sprite_accessory/undershirt/tank_les diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 1ed569f93ecc..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 diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 75f1026e4414..de07b3d4f0fd 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -431,7 +431,7 @@ set name = "quick-equip" set hidden = TRUE - DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/execute_quick_equip)) + 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() @@ -443,7 +443,7 @@ set name = "equipment-swap" set hidden = TRUE - DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/execute_equipment_swap)) + 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() 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/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 7d06c9e1f827..a7dc41b307c4 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -15,7 +15,7 @@ var/silent = 0 ///Can't talk. Value goes down every life proc. NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU. var/dreaming = 0 ///How many dream images we have left to send - var/obj/item/handcuffed = null///Whether or not the mob is handcuffed + var/obj/item/handcuffed = null ///Whether or not the mob is handcuffed var/obj/item/legcuffed = null ///Same as handcuffs but for legs. Bear traps use this. var/disgust = 0 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..a0fb24d4b622 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)) @@ -292,7 +292,7 @@ user.do_attack_animation(M) var/slap_volume = 50 - var/datum/status_effect/offering/kiss_check = M.has_status_effect(STATUS_EFFECT_OFFERING) + var/datum/status_effect/offering/kiss_check = M.has_status_effect(/datum/status_effect/offering) if(kiss_check && istype(kiss_check.offered_item, /obj/item/kisser) && (user in kiss_check.possible_takers)) user.visible_message(span_danger("[user] scoffs at [M]'s advance, winds up, and smacks [M.p_them()] hard to the ground!"), span_notice("The nerve! You wind back your hand and smack [M] hard enough to knock [M.p_them()] over!"), @@ -325,7 +325,7 @@ offerer.visible_message(span_notice("[offerer] raises [offerer.p_their()] arm, looking for a high-five!"), \ span_notice("You post up, looking for a high-five!"), null, 2) - offerer.apply_status_effect(STATUS_EFFECT_OFFERING, src, /atom/movable/screen/alert/give/highfive) + offerer.apply_status_effect(/datum/status_effect/offering, src, /atom/movable/screen/alert/give/highfive) /// Yeah broh! This is where we do the high-fiving (or high-tenning :o) /obj/item/slapper/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker) @@ -397,7 +397,7 @@ cheek_kiss = (offerer.zone_selected != BODY_ZONE_PRECISE_MOUTH) offerer.visible_message(span_notice("[offerer] leans in slightly, offering a kiss[cheek_kiss ? " on the cheek" : ""]!"), span_notice("You lean in slightly, indicating you'd like to offer a kiss[cheek_kiss ? " on the cheek" : ""]!"), null, 2) - offerer.apply_status_effect(STATUS_EFFECT_OFFERING, src) + offerer.apply_status_effect(/datum/status_effect/offering, src) return TRUE /obj/item/kisser/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker) @@ -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/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index a260f164829f..ceda44284f46 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -232,11 +232,6 @@ if(nutrition < NUTRITION_LEVEL_STARVING - 50) msg += "[t_He] [t_is] severely malnourished.\n" - else if(nutrition >= NUTRITION_LEVEL_FAT) - if(user.nutrition < NUTRITION_LEVEL_STARVING - 50) - msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n" - else - msg += "[t_He] [t_is] quite chubby.\n" switch(disgust) if(DISGUST_LEVEL_GROSS to DISGUST_LEVEL_VERYGROSS) msg += "[t_He] look[p_s()] a bit grossed out.\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index a22987b80929..4bfe35b47060 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) @@ -541,7 +541,7 @@ var/counter = 1 while(R.fields[text("com_[]", counter)]) counter++ - R.fields[text("com_[]", counter)] = text("Made by [] on [] [], []
    []", allowed_access, station_time_timestamp(), time2text(world.realtime, "MMM DD"), "504 FS", t1) + R.fields[text("com_[]", counter)] = text("Made by [] on [], []
    []", allowed_access, station_time_timestamp(), sector_datestamp(shortened = TRUE), t1) to_chat(usr, "Successfully added comment.") return @@ -646,7 +646,7 @@ return threatcount -//Used for new human mobs created by cloning/goleming/podding +//Used for new human mobs created by cloning/podding /mob/living/carbon/human/proc/set_cloned_appearance() if(gender == MALE) facial_hairstyle = "Full Beard" @@ -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 @@ -1336,83 +1336,6 @@ /mob/living/carbon/human/species/fly race = /datum/species/fly -/mob/living/carbon/human/species/golem - race = /datum/species/golem - -/mob/living/carbon/human/species/golem/random - race = /datum/species/golem/random - -/mob/living/carbon/human/species/golem/adamantine - race = /datum/species/golem/adamantine - -/mob/living/carbon/human/species/golem/plasma - race = /datum/species/golem/plasma - -/mob/living/carbon/human/species/golem/diamond - race = /datum/species/golem/diamond - -/mob/living/carbon/human/species/golem/gold - race = /datum/species/golem/gold - -/mob/living/carbon/human/species/golem/silver - race = /datum/species/golem/silver - -/mob/living/carbon/human/species/golem/plasteel - race = /datum/species/golem/plasteel - -/mob/living/carbon/human/species/golem/titanium - race = /datum/species/golem/titanium - -/mob/living/carbon/human/species/golem/plastitanium - race = /datum/species/golem/plastitanium - -/mob/living/carbon/human/species/golem/alien_alloy - race = /datum/species/golem/alloy - -/mob/living/carbon/human/species/golem/wood - race = /datum/species/golem/wood - -/mob/living/carbon/human/species/golem/uranium - race = /datum/species/golem/uranium - -/mob/living/carbon/human/species/golem/sand - race = /datum/species/golem/sand - -/mob/living/carbon/human/species/golem/glass - race = /datum/species/golem/glass - -/mob/living/carbon/human/species/golem/bluespace - race = /datum/species/golem/bluespace - -/mob/living/carbon/human/species/golem/bananium - race = /datum/species/golem/bananium - -/mob/living/carbon/human/species/golem/blood_cult - race = /datum/species/golem/runic - -/mob/living/carbon/human/species/golem/cloth - race = /datum/species/golem/cloth - -/mob/living/carbon/human/species/golem/plastic - race = /datum/species/golem/plastic - -/mob/living/carbon/human/species/golem/bronze - race = /datum/species/golem/bronze - -/mob/living/carbon/human/species/golem/cardboard - race = /datum/species/golem/cardboard - -/mob/living/carbon/human/species/golem/leather - race = /datum/species/golem/leather - -/mob/living/carbon/human/species/golem/bone - race = /datum/species/golem/bone - -/mob/living/carbon/human/species/golem/durathread - race = /datum/species/golem/durathread - -/mob/living/carbon/human/species/golem/snow - race = /datum/species/golem/snow /mob/living/carbon/human/species/jelly race = /datum/species/jelly @@ -1452,6 +1375,9 @@ /mob/living/carbon/human/species/snail race = /datum/species/snail +/mob/living/carbon/human/species/vox + race = /datum/species/vox + /mob/living/carbon/human/species/kepori race = /datum/species/kepori diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index fb2071302cb1..123ecf6d4fba 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -97,6 +97,9 @@ for(var/obj/item/I in held_items) if(I.IsReflect(def_zone)) return TRUE + ///Granted by prismwine + if(HAS_TRAIT(src, TRAIT_REFLECTIVE) && prob(50)) + return TRUE return FALSE /mob/living/carbon/human/proc/check_shields(atom/AM, damage, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0) @@ -692,15 +695,8 @@ return if(src == M) - if(has_status_effect(STATUS_EFFECT_CHOKINGSTRAND)) - to_chat(src, "You attempt to remove the durathread strand from around your neck.") - if(do_after(src, 35, null, src)) - to_chat(src, "You succesfuly remove the durathread strand.") - remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND) - return check_self_for_injuries() - else if(wear_suit) wear_suit.add_fingerprint(M) @@ -709,7 +705,6 @@ ..() - /mob/living/carbon/human/check_self_for_injuries() if(stat >= UNCONSCIOUS) return diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 4f3399675f0a..bbe40388435a 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -66,9 +66,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/disliked_food = GROSS ///Bitfield for food types that the species absolutely hates, giving them even more disgust than disliked food. Meat is "toxic" to moths, for example. var/toxic_food = TOXIC - ///Inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example. + ///Inventory slots the race can't equip stuff to. var/list/no_equip = list() - /// Allows the species to equip items that normally require a jumpsuit without having one equipped. Used by golems. + /// Allows the species to equip items that normally require a jumpsuit without having one equipped. var/nojumpsuit = FALSE ///What languages this species can understand and say. Use a [language holder datum][/datum/language_holder] in this var. var/species_language_holder = /datum/language_holder @@ -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() @@ -1352,22 +1350,6 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(HAS_TRAIT(src, TRAIT_NOHUNGER)) return //hunger is for BABIES - //The fucking TRAIT_FAT mutation is the dumbest shit ever. It makes the code so difficult to work with - if(HAS_TRAIT_FROM(H, TRAIT_FAT, OBESITY))//I share your pain, past coder. - if(H.overeatduration < 100) - to_chat(H, "You feel fit again!") - REMOVE_TRAIT(H, TRAIT_FAT, OBESITY) - H.remove_movespeed_modifier(/datum/movespeed_modifier/obesity) - H.update_inv_w_uniform() - H.update_inv_wear_suit() - else - if(H.overeatduration >= 100) - to_chat(H, "You suddenly feel blubbery!") - ADD_TRAIT(H, TRAIT_FAT, OBESITY) - H.add_movespeed_modifier(/datum/movespeed_modifier/obesity) - H.update_inv_w_uniform() - H.update_inv_wear_suit() - // nutrition decrease and satiety if (H.nutrition > 0 && H.stat != DEAD && !HAS_TRAIT(H, TRAIT_NOHUNGER)) // THEY HUNGER @@ -1399,9 +1381,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.overeatduration -= 2 //doubled the unfat rate //metabolism change - if(H.nutrition > NUTRITION_LEVEL_FAT) - H.metabolism_efficiency = 1 - else if(H.nutrition > NUTRITION_LEVEL_FED && H.satiety > 80) + if(H.nutrition > NUTRITION_LEVEL_FED && H.satiety > 80) if(H.metabolism_efficiency != 1.25 && !HAS_TRAIT(H, TRAIT_NOHUNGER)) to_chat(H, "You feel vigorous.") H.metabolism_efficiency = 1.25 @@ -1428,9 +1408,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.remove_movespeed_modifier(/datum/movespeed_modifier/hunger) switch(H.nutrition) - if(NUTRITION_LEVEL_FULL to INFINITY) - H.throw_alert("nutrition", /atom/movable/screen/alert/fat) - if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FULL) + if(NUTRITION_LEVEL_HUNGRY to INFINITY) H.clear_alert("nutrition") if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) H.throw_alert("nutrition", /atom/movable/screen/alert/hungry) @@ -1467,7 +1445,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 +1746,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 +1756,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 +1774,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 +2217,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 deleted file mode 100644 index 4164b8e2bb8e..000000000000 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ /dev/null @@ -1,1118 +0,0 @@ -/datum/species/golem - // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. - name = "\improper Golem" - id = "iron golem" - species_traits = list(NOBLOOD,MUTCOLORS,NO_UNDERWEAR) - inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) - inherent_biotypes = MOB_HUMANOID|MOB_MINERAL - mutant_organs = list(/obj/item/organ/adamantine_resonator) - mutanttongue = /obj/item/organ/tongue/golem_base - speedmod = 2 - armor = 55 - siemens_coeff = 0 - punchdamagelow = 5 - punchdamagehigh = 14 - punchstunthreshold = 11 //about 40% chance to stun - no_equip = list(ITEM_SLOT_MASK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_ICLOTHING, ITEM_SLOT_SUITSTORE) - nojumpsuit = 1 - changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC - sexes = FALSE - damage_overlay_type = "" - meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem - species_language_holder = /datum/language_holder/golem - // To prevent golem subtypes from overwhelming the odds when random species - // changes, only the Random Golem type can be chosen - - species_chest = /obj/item/bodypart/chest/golem - species_head = /obj/item/bodypart/head/golem - species_l_arm = /obj/item/bodypart/l_arm/golem - species_r_arm = /obj/item/bodypart/r_arm/golem - species_l_leg = /obj/item/bodypart/leg/left/golem - species_r_leg = /obj/item/bodypart/leg/right/golem - - fixed_mut_color = "aaa" - var/info_text = "As an Iron Golem, you don't have any special traits." - var/random_eligible = TRUE //If false, the golem subtype can't be made through golem mutation toxin - - var/prefix = "Iron" - var/list/special_names = list("Tarkus") - var/human_surname_chance = 3 - var/special_name_chance = 5 - var/owner //dobby is a free golem - -/datum/species/golem/random_name(gender,unique,lastname) - var/golem_surname = pick(GLOB.golem_names) - // 3% chance that our golem has a human surname, because - // cultural contamination - if(prob(human_surname_chance)) - golem_surname = pick(GLOB.last_names) - else if(special_names && special_names.len && prob(special_name_chance)) - golem_surname = pick(special_names) - - var/golem_name = "[prefix] [golem_surname]" - return golem_name - -/datum/species/golem/random - name = "Random Golem" - id = "random golem" - changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN - var/static/list/random_golem_types - -/datum/species/golem/random/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - if(!random_golem_types) - random_golem_types = subtypesof(/datum/species/golem) - type - for(var/V in random_golem_types) - var/datum/species/golem/G = V - if(!initial(G.random_eligible)) - random_golem_types -= G - var/datum/species/golem/golem_type = pick(random_golem_types) - var/mob/living/carbon/human/H = C - H.set_species(golem_type) - to_chat(H, "[initial(golem_type.info_text)]") - -/datum/species/golem/adamantine - name = "Adamantine Golem" - id = "adamantine golem" - meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine - mutant_organs = list(/obj/item/organ/adamantine_resonator, /obj/item/organ/vocal_cords/adamantine) - fixed_mut_color = "4ed" - info_text = "As an Adamantine Golem, you possess special vocal cords allowing you to \"resonate\" messages to all golems. Your unique mineral makeup makes you immune to most types of magic." - prefix = "Adamantine" - special_names = null - -/datum/species/golem/adamantine/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - ADD_TRAIT(C, TRAIT_ANTIMAGIC, SPECIES_TRAIT) - -/datum/species/golem/adamantine/on_species_loss(mob/living/carbon/C) - REMOVE_TRAIT(C, TRAIT_ANTIMAGIC, SPECIES_TRAIT) - ..() - -//The suicide bombers of golemkind -/datum/species/golem/plasma - name = "Plasma Golem" - id = "plasma golem" - fixed_mut_color = "a3d" - meat = /obj/item/stack/ore/plasma - //Can burn and takes damage from heat - inherent_traits = list(TRAIT_NOBREATH, TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) //no RESISTHEAT, NOFIRE - info_text = "As a Plasma Golem, you burn easily. Be careful, if you get hot enough while burning, you'll blow up!" - heatmod = 0 //fine until they blow up - prefix = "Plasma" - special_names = list("Flood","Fire","Bar","Man") - var/boom_warning = FALSE - var/datum/action/innate/ignite/ignite - -/datum/species/golem/plasma/spec_life(mob/living/carbon/human/H) - if(H.bodytemperature > 750) - if(!boom_warning && H.on_fire) - to_chat(H, "You feel like you could blow up at any moment!") - boom_warning = TRUE - else - if(boom_warning) - to_chat(H, "You feel more stable.") - boom_warning = FALSE - - if(H.bodytemperature > 850 && H.on_fire && prob(25)) - explosion(get_turf(H),1,2,4,flame_range = 5) - if(H) - H.gib() - if(H.fire_stacks < 2) //flammable - H.adjust_fire_stacks(1) - ..() - -/datum/species/golem/plasma/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - if(ishuman(C)) - ignite = new - ignite.Grant(C) - -/datum/species/golem/plasma/on_species_loss(mob/living/carbon/C) - if(ignite) - ignite.Remove(C) - ..() - -/datum/action/innate/ignite - name = "Ignite" - desc = "Set yourself aflame, bringing yourself closer to exploding!" - check_flags = AB_CHECK_CONSCIOUS - button_icon_state = "sacredflame" - -/datum/action/innate/ignite/Activate() - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - if(H.fire_stacks) - to_chat(owner, "You ignite yourself!") - else - to_chat(owner, "You try to ignite yourself, but fail!") - H.IgniteMob() //firestacks are already there passively - -//Harder to hurt -/datum/species/golem/diamond - name = "Diamond Golem" - id = "diamond golem" - fixed_mut_color = "0ff" - armor = 70 //up from 55 - meat = /obj/item/stack/ore/diamond - info_text = "As a Diamond Golem, you are more resistant than the average golem." - prefix = "Diamond" - special_names = list("Back","Grill") - -//Faster but softer and less armoured -/datum/species/golem/gold - name = "Gold Golem" - id = "gold golem" - fixed_mut_color = "cc0" - speedmod = 1 - armor = 25 //down from 55 - meat = /obj/item/stack/ore/gold - info_text = "As a Gold Golem, you are faster but less resistant than the average golem." - prefix = "Golden" - special_names = list("Boy") - -//Heavier, thus higher chance of stunning when punching -/datum/species/golem/silver - name = "Silver Golem" - id = "silver golem" - fixed_mut_color = "ddd" - punchstunthreshold = 9 //60% chance, from 40% - meat = /obj/item/stack/ore/silver - info_text = "As a Silver Golem, your attacks have a higher chance of stunning. Being made of silver, your body is immune to most types of magic." - prefix = "Silver" - special_names = list("Surfer", "Chariot", "Lining") - -/datum/species/golem/silver/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - ADD_TRAIT(C, TRAIT_HOLY, SPECIES_TRAIT) - -/datum/species/golem/silver/on_species_loss(mob/living/carbon/C) - REMOVE_TRAIT(C, TRAIT_HOLY, SPECIES_TRAIT) - ..() - -//Harder to stun, deals more damage, massively slowpokes, but gravproof and obstructive. Basically, The Wall. -/datum/species/golem/plasteel - name = "Plasteel Golem" - id = "plasteel golem" - fixed_mut_color = "bbb" - stunmod = 0.4 - punchdamagelow = 12 - punchdamagehigh = 21 - punchstunthreshold = 18 //still 40% stun chance - speedmod = 4 //pretty fucking slow - meat = /obj/item/stack/ore/iron - info_text = "As a Plasteel Golem, you are slower, but harder to stun, and hit very hard when punching. You also magnetically attach to surfaces and so don't float without gravity and cannot have positions swapped with other beings." - attack_verb = "smash" - attack_sound = 'sound/effects/meteorimpact.ogg' //hits pretty hard - prefix = "Plasteel" - special_names = null - -/datum/species/golem/plasteel/negates_gravity(mob/living/carbon/human/H) - return TRUE - -/datum/species/golem/plasteel/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - ADD_TRAIT(C, TRAIT_NOMOBSWAP, SPECIES_TRAIT) //THE WALL THE WALL THE WALL - -/datum/species/golem/plasteel/on_species_loss(mob/living/carbon/C) - REMOVE_TRAIT(C, TRAIT_NOMOBSWAP, SPECIES_TRAIT) //NOTHING ON ERF CAN MAKE IT FALL - ..() - -//Immune to ash storms -/datum/species/golem/titanium - name = "Titanium Golem" - id = "titanium golem" - fixed_mut_color = "fff" - meat = /obj/item/stack/ore/titanium - info_text = "As a Titanium Golem, you are immune to ash storms, and slightly more resistant to burn damage." - burnmod = 0.9 - prefix = "Titanium" - special_names = list("Dioxide") - -/datum/species/golem/titanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.weather_immunities |= "ash" - -/datum/species/golem/titanium/on_species_loss(mob/living/carbon/C) - . = ..() - C.weather_immunities -= "ash" - -//Immune to ash storms and lava -/datum/species/golem/plastitanium - name = "Plastitanium Golem" - id = "plastitanium golem" - fixed_mut_color = "888" - meat = /obj/item/stack/ore/titanium - info_text = "As a Plastitanium Golem, you are immune to both ash storms and lava, and slightly more resistant to burn damage." - burnmod = 0.8 - prefix = "Plastitanium" - special_names = null - -/datum/species/golem/plastitanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.weather_immunities |= "lava" - C.weather_immunities |= "ash" - -/datum/species/golem/plastitanium/on_species_loss(mob/living/carbon/C) - . = ..() - C.weather_immunities -= "ash" - C.weather_immunities -= "lava" - -//Fast and regenerates... but can only speak like an abductor -/datum/species/golem/alloy - name = "Alien Alloy Golem" - id = "alloy golem" - fixed_mut_color = "333" - meat = /obj/item/stack/sheet/mineral/abductor - mutanttongue = /obj/item/organ/tongue/abductor - speedmod = 1 //faster - info_text = "As an Alloy Golem, you are made of advanced alien materials: you are faster and regenerate over time. You are, however, only able to be heard by other alloy golems." - prefix = "Alien" - special_names = list("Outsider", "Technology", "Watcher", "Stranger") //ominous and unknown - - species_chest = /obj/item/bodypart/chest/golem/alloy - species_head = /obj/item/bodypart/head/golem/alloy - species_l_arm = /obj/item/bodypart/l_arm/golem/alloy - species_r_arm = /obj/item/bodypart/r_arm/golem/alloy - species_l_leg = /obj/item/bodypart/leg/left/golem/alloy - species_r_leg = /obj/item/bodypart/leg/right/golem/alloy - -//Regenerates because self-repairing super-advanced alien tech -/datum/species/golem/alloy/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - H.heal_overall_damage(2,2, 0, BODYTYPE_ORGANIC) - H.adjustToxLoss(-2) - H.adjustOxyLoss(-2) - -//Since this will usually be created from a collaboration between podpeople and free golems, wood golems are a mix between the two races -/datum/species/golem/wood - name = "Wood Golem" - id = "wood golem" - fixed_mut_color = "9E704B" - meat = /obj/item/stack/sheet/mineral/wood - //Can burn and take damage from heat - inherent_traits = list(TRAIT_NOBREATH, TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) - armor = 30 - burnmod = 1.25 - heatmod = 1.5 - info_text = "As a Wooden Golem, you have plant-like traits: you take damage from extreme temperatures, can be set on fire, and have lower armor than a normal golem. You regenerate when in the light and wither in the darkness." - prefix = "Wooden" - special_names = list("Bark", "Willow", "Catalpa", "Woody", "Oak", "Sap", "Twig", "Branch", "Maple", "Birch", "Elm", "Basswood", "Cottonwood", "Larch", "Aspen", "Ash", "Beech", "Buckeye", "Cedar", "Chestnut", "Cypress", "Fir", "Hawthorn", "Hazel", "Hickory", "Ironwood", "Juniper", "Leaf", "Mangrove", "Palm", "Pawpaw", "Pine", "Poplar", "Redwood", "Redbud", "Sassafras", "Spruce", "Sumac", "Trunk", "Walnut", "Yew") - human_surname_chance = 0 - special_name_chance = 100 - inherent_factions = list("plants", "vines") - -/datum/species/golem/wood/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing - if(isturf(H.loc)) //else, there's considered to be no light - var/turf/T = H.loc - light_amount = min(1,T.get_lumcount()) - 0.5 - H.adjust_nutrition(light_amount * 10) - if(H.nutrition > NUTRITION_LEVEL_ALMOST_FULL) - H.set_nutrition(NUTRITION_LEVEL_ALMOST_FULL) - if(light_amount > 0.2) //if there's enough light, heal - H.heal_overall_damage(1,1,0, BODYPART_ORGANIC) - H.adjustToxLoss(-1) - H.adjustOxyLoss(-1) - - if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) - H.take_overall_damage(2,0) - -/datum/species/golem/wood/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.type == /datum/reagent/toxin/plantbgone) - H.adjustToxLoss(3) - H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - return TRUE - return ..() - -//Radioactive -/datum/species/golem/uranium - name = "Uranium Golem" - id = "uranium golem" - fixed_mut_color = "7f0" - meat = /obj/item/stack/ore/uranium - info_text = "As an Uranium Golem, you emit radiation pulses every once in a while. It won't harm fellow golems, but organic lifeforms will be affected." - - var/last_event = 0 - var/active = null - prefix = "Uranium" - special_names = list("Oxide", "Rod", "Meltdown", "235") - -/datum/species/golem/uranium/spec_life(mob/living/carbon/human/H) - if(!active) - if(world.time > last_event+30) - active = 1 - radiation_pulse(H, 50) - last_event = world.time - active = null - ..() - -//Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death. -/datum/species/golem/sand - name = "Sand Golem" - id = "sand golem" - fixed_mut_color = "ffdc8f" - meat = /obj/item/stack/ore/glass //this is sand - armor = 0 - burnmod = 3 //melts easily - brutemod = 0.25 - info_text = "As a Sand Golem, you are immune to physical bullets and take very little brute damage, but are extremely vulnerable to burn damage and energy weapons. You will also turn to sand when dying, preventing any form of recovery." - attack_sound = 'sound/effects/shovel_dig.ogg' - prefix = "Sand" - special_names = list("Castle", "Bag", "Dune", "Worm", "Storm") - -/datum/species/golem/sand/spec_death(gibbed, mob/living/carbon/human/H) - H.visible_message("[H] turns into a pile of sand!") - for(var/obj/item/W in H) - H.dropItemToGround(W) - for(var/i=1, i <= rand(3,5), i++) - new /obj/item/stack/ore/glass(get_turf(H)) - qdel(H) - -/datum/species/golem/sand/bullet_act(obj/projectile/P, mob/living/carbon/human/H) - if(!(P.original == H && P.firer == H)) - if(P.flag == "bullet" || P.flag == "bomb") - playsound(H, 'sound/effects/shovel_dig.ogg', 70, TRUE) - H.visible_message("The [P.name] sinks harmlessly in [H]'s sandy body!", \ - "The [P.name] sinks harmlessly in [H]'s sandy body!") - return BULLET_ACT_BLOCK - return ..() - -//Reflects lasers and resistant to burn damage, but very vulnerable to brute damage. Shatters on death. -/datum/species/golem/glass - name = "Glass Golem" - id = "glass golem" - fixed_mut_color = "5a96b4aa" //transparent body - meat = /obj/item/shard - armor = 0 - brutemod = 3 //very fragile - burnmod = 0.25 - info_text = "As a Glass Golem, you reflect lasers and energy weapons, and are very resistant to burn damage. However, you are extremely vulnerable to brute damage. On death, you'll shatter beyond any hope of recovery." - attack_sound = 'sound/effects/glassbr2.ogg' - prefix = "Glass" - special_names = list("Lens", "Prism", "Fiber", "Bead") - -/datum/species/golem/glass/spec_death(gibbed, mob/living/carbon/human/H) - playsound(H, "shatter", 70, TRUE) - H.visible_message("[H] shatters!") - for(var/obj/item/W in H) - H.dropItemToGround(W) - for(var/i=1, i <= rand(3,5), i++) - new /obj/item/shard(get_turf(H)) - qdel(H) - -/datum/species/golem/glass/bullet_act(obj/projectile/P, mob/living/carbon/human/H) - if(!(P.original == H && P.firer == H)) //self-shots don't reflect - if(P.flag == "laser" || P.flag == "energy") - H.visible_message("The [P.name] gets reflected by [H]'s glass skin!", \ - "The [P.name] gets reflected by [H]'s glass skin!") - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - // redirect the projectile - P.firer = H - P.preparePixelProjectile(locate(clamp(new_x, 1, world.maxx), clamp(new_y, 1, world.maxy), H.z), H) - return BULLET_ACT_FORCE_PIERCE - return ..() - -//Teleports when hit or when it wants to -/datum/species/golem/bluespace - name = "Bluespace Golem" - id = "bluespace golem" - fixed_mut_color = "33f" - meat = /obj/item/stack/ore/bluespace_crystal - info_text = "As a Bluespace Golem, you are spatially unstable: You will teleport when hit, and you can teleport manually at a long distance." - attack_verb = "bluespace punch" - attack_sound = 'sound/effects/phasein.ogg' - prefix = "Bluespace" - special_names = list("Crystal", "Polycrystal") - - var/datum/action/innate/unstable_teleport/unstable_teleport - var/teleport_cooldown = 100 - var/last_teleport = 0 - -/datum/species/golem/bluespace/proc/reactive_teleport(mob/living/carbon/human/H) - H.visible_message("[H] teleports!", "You destabilize and teleport!") - new /obj/effect/particle_effect/sparks(get_turf(H)) - playsound(get_turf(H), "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - do_teleport(H, get_turf(H), 6, asoundin = 'sound/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) - last_teleport = world.time - -/datum/species/golem/bluespace/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) - ..() - var/obj/item/I - if(istype(AM, /obj/item)) - I = AM - if(I.thrownby == WEAKREF(H)) //No throwing stuff at yourself to trigger the teleport - return 0 - else - reactive_teleport(H) - -/datum/species/golem/bluespace/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) - ..() - if(world.time > last_teleport + teleport_cooldown && M != H && M.a_intent != INTENT_HELP) - reactive_teleport(H) - -/datum/species/golem/bluespace/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - ..() - if(world.time > last_teleport + teleport_cooldown && user != H) - reactive_teleport(H) - -/datum/species/golem/bluespace/on_hit(obj/projectile/P, mob/living/carbon/human/H) - ..() - if(world.time > last_teleport + teleport_cooldown) - reactive_teleport(H) - -/datum/species/golem/bluespace/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - if(ishuman(C)) - unstable_teleport = new - unstable_teleport.Grant(C) - last_teleport = world.time - -/datum/species/golem/bluespace/on_species_loss(mob/living/carbon/C) - if(unstable_teleport) - unstable_teleport.Remove(C) - ..() - -/datum/action/innate/unstable_teleport - name = "Unstable Teleport" - check_flags = AB_CHECK_CONSCIOUS - button_icon_state = "jaunt" - icon_icon = 'icons/mob/actions/actions_spells.dmi' - var/cooldown = 150 - var/last_teleport = 0 - -/datum/action/innate/unstable_teleport/IsAvailable() - if(..()) - if(world.time > last_teleport + cooldown) - return 1 - return 0 - -/datum/action/innate/unstable_teleport/Activate() - 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) - -/datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) - H.visible_message("[H] disappears in a shower of sparks!", "You teleport!") - var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(10, 0, src) - spark_system.attach(H) - spark_system.start() - do_teleport(H, get_turf(H), 12, asoundin = 'sound/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) - last_teleport = world.time - UpdateButtonIcon() //action icon looks unavailable - //action icon looks available again - addtimer(CALLBACK(src, .proc/UpdateButtonIcon), cooldown + 5) - - -//honk -/datum/species/golem/bananium - name = "Bananium Golem" - id = "bananium golem" - fixed_mut_color = "ff0" - punchdamagelow = 0 - punchdamagehigh = 1 - punchstunthreshold = 2 //Harmless and can't stun - meat = /obj/item/stack/ore/bananium - info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you can barely even hurt people when punching them. Your skin also bleeds banana peels when damaged." - attack_verb = "honk" - attack_sound = 'sound/items/airhorn2.ogg' - prefix = "Bananium" - special_names = null - mutanttongue = /obj/item/organ/tongue/golem_honk - - species_chest = /obj/item/bodypart/chest/golem/bananium - species_head = /obj/item/bodypart/head/golem/bananium - species_l_arm = /obj/item/bodypart/l_arm/golem/bananium - species_r_arm = /obj/item/bodypart/r_arm/golem/bananium - species_l_leg = /obj/item/bodypart/leg/left/golem/bananium - species_r_leg = /obj/item/bodypart/leg/right/golem/bananium - - var/last_honk = 0 - var/honkooldown = 0 - var/last_banana = 0 - var/banana_cooldown = 100 - var/active = null - -/datum/species/golem/bananium/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - last_banana = world.time - last_honk = world.time - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) - -/datum/species/golem/bananium/on_species_loss(mob/living/carbon/C) - . = ..() - UnregisterSignal(C, COMSIG_MOB_SAY) - -/datum/species/golem/bananium/random_name(gender,unique,lastname) - var/clown_name = pick(GLOB.clown_names) - var/golem_name = "[uppertext(clown_name)]" - return golem_name - -/datum/species/golem/bananium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) - ..() - if(world.time > last_banana + banana_cooldown && M != H && M.a_intent != INTENT_HELP) - new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - ..() - if(world.time > last_banana + banana_cooldown && user != H) - new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/on_hit(obj/projectile/P, mob/living/carbon/human/H) - ..() - if(world.time > last_banana + banana_cooldown) - new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) - ..() - var/obj/item/I - if(istype(AM, /obj/item)) - I = AM - if(I.thrownby == WEAKREF(H)) //No throwing stuff at yourself to make bananas - return 0 - else - new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_life(mob/living/carbon/human/H) - if(!active) - if(world.time > last_honk + honkooldown) - active = 1 - playsound(get_turf(H), 'sound/items/bikehorn.ogg', 50, TRUE) - last_honk = world.time - honkooldown = rand(20, 80) - active = null - ..() - -/datum/species/golem/bananium/spec_death(gibbed, mob/living/carbon/human/H) - playsound(get_turf(H), 'sound/misc/sadtrombone.ogg', 70, FALSE) - -/datum/species/golem/bananium/proc/handle_speech(datum/source, list/speech_args) - speech_args[SPEECH_SPANS] |= SPAN_CLOWN - -/datum/species/golem/runic - name = "Runic Golem" - id = "cult_golem" - sexes = FALSE - info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder Goddess Nar'Sie." - species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYESPRITES) //no mutcolors - inherent_traits = list(TRAIT_NOFLASH,TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) - inherent_biotypes = MOB_HUMANOID|MOB_MINERAL - prefix = "Runic" - special_names = null - inherent_factions = list("cult") - species_language_holder = /datum/language_holder/golem/runic - random_eligible = FALSE //Zesko claims runic golems break the game - - var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift - var/obj/effect/proc_holder/spell/pointed/abyssal_gaze/abyssal_gaze - var/obj/effect/proc_holder/spell/pointed/dominate/dominate - - species_chest = /obj/item/bodypart/chest/golem/cult - species_head = /obj/item/bodypart/head/golem/cult - species_l_arm = /obj/item/bodypart/l_arm/golem/cult - species_r_arm = /obj/item/bodypart/r_arm/golem/cult - species_l_leg = /obj/item/bodypart/leg/left/golem/cult - species_r_leg = /obj/item/bodypart/leg/right/golem/cult - -/datum/species/golem/runic/random_name(gender,unique,lastname) - var/edgy_first_name = pick("Razor","Blood","Dark","Evil","Cold","Pale","Black","Silent","Chaos","Deadly","Coldsteel") - var/edgy_last_name = pick("Edge","Night","Death","Razor","Blade","Steel","Calamity","Twilight","Shadow","Nightmare") //dammit Razor Razor - var/golem_name = "[edgy_first_name] [edgy_last_name]" - return golem_name - -/datum/species/golem/runic/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - phase_shift = new - phase_shift.charge_counter = 0 - C.AddSpell(phase_shift) - abyssal_gaze = new - abyssal_gaze.charge_counter = 0 - C.AddSpell(abyssal_gaze) - dominate = new - dominate.charge_counter = 0 - C.AddSpell(dominate) - -/datum/species/golem/runic/on_species_loss(mob/living/carbon/C) - . = ..() - if(phase_shift) - C.RemoveSpell(phase_shift) - if(abyssal_gaze) - C.RemoveSpell(abyssal_gaze) - if(dominate) - C.RemoveSpell(dominate) - -/datum/species/golem/runic/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.type == /datum/reagent/water/holywater) - H.adjustFireLoss(4) - H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - - if(chem.type == /datum/reagent/fuel/unholywater) - H.adjustBruteLoss(-4) - H.adjustFireLoss(-4) - H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - return ..() - -/datum/species/golem/cloth - name = "Cloth Golem" - id = "cloth golem" - sexes = FALSE - info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable. \ - Being made of cloth, your body is magic resistant and faster than that of other golems, but weaker and less resilient." - species_traits = list(NOBLOOD,NO_UNDERWEAR) //no mutcolors, and can burn - inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_NOBREATH,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_CHUNKYFINGERS) - inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID - armor = 15 //feels no pain, but not too resistant - burnmod = 2 // don't get burned - speedmod = 1 // not as heavy as stone - punchdamagelow = 4 - punchstunthreshold = 7 - punchdamagehigh = 8 // not as heavy as stone - prefix = "Cloth" - special_names = null - - species_chest = /obj/item/bodypart/chest/golem/cloth - species_head = /obj/item/bodypart/head/golem/cloth - species_l_arm = /obj/item/bodypart/l_arm/golem/cloth - species_r_arm = /obj/item/bodypart/r_arm/golem/cloth - species_l_leg = /obj/item/bodypart/leg/left/golem/cloth - species_r_leg = /obj/item/bodypart/leg/right/golem/cloth - -/datum/species/golem/cloth/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - ADD_TRAIT(C, TRAIT_HOLY, SPECIES_TRAIT) - -/datum/species/golem/cloth/on_species_loss(mob/living/carbon/C) - 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 - var/golem_name = "[pharaoh_name] \Roman[rand(1,99)]" - return golem_name - -/datum/species/golem/cloth/spec_life(mob/living/carbon/human/H) - if(H.fire_stacks < 1) - H.adjust_fire_stacks(1) //always prone to burning - ..() - -/datum/species/golem/cloth/spec_death(gibbed, mob/living/carbon/human/H) - if(gibbed) - return - if(H.on_fire) - H.visible_message("[H] burns into ash!") - H.dust(just_ash = TRUE) - return - - H.visible_message("[H] falls apart into a pile of bandages!") - new /obj/structure/cloth_pile(get_turf(H), H) - ..() - -/obj/structure/cloth_pile - name = "pile of bandages" - desc = "It emits a strange aura, as if there was still life within it..." - max_integrity = 50 - armor = list("melee" = 90, "bullet" = 90, "laser" = 25, "energy" = 80, "bomb" = 50, "bio" = 100, "fire" = -50, "acid" = -50) - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "pile_bandages" - resistance_flags = FLAMMABLE - - var/revive_time = 900 - var/mob/living/carbon/human/cloth_golem - -/obj/structure/cloth_pile/Initialize(mapload, mob/living/carbon/human/H) - . = ..() - if(!QDELETED(H) && is_species(H, /datum/species/golem/cloth)) - H.unequip_everything() - 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) - else - return INITIALIZE_HINT_QDEL - -/obj/structure/cloth_pile/Destroy() - if(cloth_golem) - QDEL_NULL(cloth_golem) - return ..() - -/obj/structure/cloth_pile/burn() - visible_message("[src] burns into ash!") - new /obj/effect/decal/cleanable/ash(get_turf(src)) - ..() - -/obj/structure/cloth_pile/proc/revive(full_heal = FALSE, admin_revive = FALSE) - if(QDELETED(src) || QDELETED(cloth_golem)) //QDELETED also checks for null, so if no cloth golem is set this won't runtime - return - if(cloth_golem.hellbound) - QDEL_NULL(cloth_golem) - return - - invisibility = INVISIBILITY_MAXIMUM //disappear before the animation - new /obj/effect/temp_visual/mummy_animation(get_turf(src)) - if(cloth_golem.revive(full_heal = TRUE, admin_revive = TRUE)) - cloth_golem.grab_ghost() - sleep(20) - cloth_golem.forceMove(get_turf(src)) - cloth_golem.visible_message("[src] rises and reforms into [cloth_golem]!","You reform into yourself!") - cloth_golem = null - qdel(src) - -/obj/structure/cloth_pile/attackby(obj/item/P, mob/living/carbon/human/user, params) - . = ..() - - if(resistance_flags & ON_FIRE) - return - - if(P.get_temperature()) - visible_message("[src] bursts into flames!") - fire_act() - -/datum/species/golem/plastic - name = "Plastic Golem" - id = "plastic golem" - prefix = "Plastic" - special_names = list("Sheet", "Bag", "Bottle") - fixed_mut_color = "fffa" - info_text = "As a Plastic Golem, you are capable of ventcrawling and passing through plastic flaps as long as you are naked." - -/datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.ventcrawler = VENTCRAWLER_NUDE - -/datum/species/golem/plastic/on_species_loss(mob/living/carbon/C) - . = ..() - C.ventcrawler = initial(C.ventcrawler) - -/datum/species/golem/bronze - name = "Bronze Golem" - id = "bronze golem" - prefix = "Bronze" - special_names = list("Bell") - fixed_mut_color = "cd7f32" - info_text = "As a Bronze Golem, you are very resistant to loud noises, and make loud noises if something hard hits you, however this ability does hurt your hearing." - special_step_sounds = list('sound/machines/clockcult/integration_cog_install.ogg', 'sound/magic/clockwork/fellowship_armory.ogg') - mutantears = /obj/item/organ/ears/bronze - var/last_gong_time = 0 - var/gong_cooldown = 150 - -/datum/species/golem/bronze/bullet_act(obj/projectile/P, mob/living/carbon/human/H) - if(!(world.time > last_gong_time + gong_cooldown)) - return ..() - if(P.flag == "bullet" || P.flag == "bomb") - gong(H) - return ..() - -/datum/species/golem/bronze/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) - ..() - if(world.time > last_gong_time + gong_cooldown) - gong(H) - -/datum/species/golem/bronze/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) - ..() - if(world.time > last_gong_time + gong_cooldown && M.a_intent != INTENT_HELP) - gong(H) - -/datum/species/golem/bronze/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - ..() - if(world.time > last_gong_time + gong_cooldown) - gong(H) - -/datum/species/golem/bronze/on_hit(obj/projectile/P, mob/living/carbon/human/H) - ..() - if(world.time > last_gong_time + gong_cooldown) - gong(H) - -/datum/species/golem/bronze/proc/gong(mob/living/carbon/human/H) - last_gong_time = world.time - for(var/mob/living/M in get_hearers_in_view(7,H)) - if(M.stat == DEAD) //F - return - if(M == H) - H.show_message("You cringe with pain as your body rings around you!", MSG_AUDIBLE) - H.playsound_local(H, 'sound/effects/gong.ogg', 100, TRUE) - H.soundbang_act(2, 0, 100, 1) - H.jitteriness += 7 - var/distance = max(0,get_dist(get_turf(H),get_turf(M))) - switch(distance) - if(0 to 1) - M.show_message("GONG!", MSG_AUDIBLE) - M.playsound_local(H, 'sound/effects/gong.ogg', 100, TRUE) - M.soundbang_act(1, 0, 30, 3) - M.confused += 10 - M.jitteriness += 4 - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "gonged", /datum/mood_event/loud_gong) - if(2 to 3) - M.show_message("GONG!", MSG_AUDIBLE) - M.playsound_local(H, 'sound/effects/gong.ogg', 75, TRUE) - M.soundbang_act(1, 0, 15, 2) - M.jitteriness += 3 - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "gonged", /datum/mood_event/loud_gong) - else - M.show_message("GONG!", MSG_AUDIBLE) - M.playsound_local(H, 'sound/effects/gong.ogg', 50, TRUE) - - -/datum/species/golem/cardboard //Faster but weaker, can also make new shells on its own - name = "Cardboard Golem" - id = "cardboard golem" - prefix = "Cardboard" - special_names = list("Box") - info_text = "As a Cardboard Golem, you aren't very strong, but you are a bit quicker and can easily create more brethren by using cardboard on yourself." - species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYESPRITES) - inherent_traits = list(TRAIT_NOBREATH, TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER, TRAIT_NOFLASH) - attack_verb = "whips" - attack_sound = 'sound/weapons/whip.ogg' - miss_sound = 'sound/weapons/etherealmiss.ogg' - fixed_mut_color = null - armor = 25 - burnmod = 1.25 - heatmod = 2 - speedmod = 1.5 - punchdamagelow = 4 - punchstunthreshold = 7 - punchdamagehigh = 8 - var/last_creation = 0 - var/brother_creation_cooldown = 300 - - species_chest = /obj/item/bodypart/chest/golem/cardboard - species_head = /obj/item/bodypart/head/golem/cardboard - species_l_arm = /obj/item/bodypart/l_arm/golem/cardboard - species_r_arm = /obj/item/bodypart/r_arm/golem/cardboard - species_l_leg = /obj/item/bodypart/leg/left/golem/cardboard - species_r_leg = /obj/item/bodypart/leg/right/golem/cardboard - -/datum/species/golem/cardboard/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - . = ..() - if(user != H) - return FALSE //forced reproduction is rape. - if(istype(I, /obj/item/stack/sheet/cardboard)) - var/obj/item/stack/sheet/cardboard/C = I - if(last_creation + brother_creation_cooldown > world.time) //no cheesing dork - return - if(C.amount < 10) - to_chat(H, "You do not have enough cardboard!") - return FALSE - to_chat(H, "You attempt to create a new cardboard brother.") - if(do_after(user, 30, target = user)) - if(last_creation + brother_creation_cooldown > world.time) //no cheesing dork - return - if(!C.use(10)) - to_chat(H, "You do not have enough cardboard!") - return FALSE - to_chat(H, "You create a new cardboard golem shell.") - create_brother(H.loc) - -/datum/species/golem/cardboard/proc/create_brother(location) - new /obj/effect/mob_spawn/human/golem/servant(location, /datum/species/golem/cardboard, owner) - last_creation = world.time - -/datum/species/golem/leather - name = "Leather Golem" - id = "leather golem" - special_names = list("Face", "Man", "Belt") //Ah dude 4 strength 4 stam leather belt AHHH - inherent_traits = list(TRAIT_NOBREATH, TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER, TRAIT_STRONG_GRABBER) - prefix = "Leather" - fixed_mut_color = "624a2e" - info_text = "As a Leather Golem, you are flammable, but you can grab things with incredible ease, allowing all your grabs to start at a strong level." - grab_sound = 'sound/weapons/whipgrab.ogg' - attack_sound = 'sound/weapons/whip.ogg' - -/datum/species/golem/durathread - name = "Durathread Golem" - id = "durathread golem" - prefix = "Durathread" - special_names = list("Boll","Weave") - species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYESPRITES) - fixed_mut_color = null - inherent_traits = list(TRAIT_NOBREATH, TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER, TRAIT_NOFLASH) - info_text = "As a Durathread Golem, your strikes will cause those your targets to start choking, but your woven body won't withstand fire as well." - - species_head = /obj/item/bodypart/head/golem/durathread - species_l_arm = /obj/item/bodypart/l_arm/golem/durathread - species_r_arm = /obj/item/bodypart/r_arm/golem/durathread - species_l_leg = /obj/item/bodypart/leg/left/golem/durathread - species_r_leg = /obj/item/bodypart/leg/right/golem/durathread - -/datum/species/golem/durathread/spec_unarmedattacked(mob/living/carbon/human/user, mob/living/carbon/human/target) - . = ..() - target.apply_status_effect(STATUS_EFFECT_CHOKINGSTRAND) - -/datum/species/golem/bone - name = "Bone Golem" - id = "bone golem" - prefix = "Bone" - special_names = list("Head", "Broth", "Fracture", "Rattler", "Appetit") - liked_food = GROSS | MEAT | RAW - toxic_food = null - species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYESPRITES) - inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID - mutanttongue = /obj/item/organ/tongue/bone - sexes = FALSE - fixed_mut_color = null - inherent_traits = list(TRAIT_NOFLASH,TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_FAKEDEATH) - species_language_holder = /datum/language_holder/golem/bone - info_text = "As a Bone Golem, You have a powerful spell that lets you chill your enemies with fear, and milk heals you! Just make sure to watch our for bone-hurting juice." - var/datum/action/innate/bonechill/bonechill - - species_chest = /obj/item/bodypart/chest/golem/bone - species_head = /obj/item/bodypart/head/golem/bone - species_l_arm = /obj/item/bodypart/l_arm/golem/bone - species_r_arm = /obj/item/bodypart/r_arm/golem/bone - species_l_leg = /obj/item/bodypart/leg/left/golem/bone - species_r_leg = /obj/item/bodypart/leg/right/golem/bone - -/datum/species/golem/bone/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - if(ishuman(C)) - bonechill = new - bonechill.Grant(C) - -/datum/species/golem/bone/on_species_loss(mob/living/carbon/C) - if(bonechill) - bonechill.Remove(C) - ..() - -/datum/species/golem/bone/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.type == /datum/reagent/consumable/milk) - if(chem.volume > 10) - H.reagents.remove_reagent(chem.type, chem.volume - 10) - to_chat(H, "The excess milk is dripping off your bones!") - H.heal_bodypart_damage(1.5,0, 0) - H.reagents.remove_reagent(chem.type, chem.metabolization_rate) - return TRUE - if(chem.type == /datum/reagent/toxin/bonehurtingjuice) - H.adjustStaminaLoss(7.5, 0) - H.adjustBruteLoss(0.5, 0) - if(prob(20)) - switch(rand(1, 3)) - if(1) - H.say(pick("oof.", "ouch.", "my bones.", "oof ouch.", "oof ouch my bones."), forced = /datum/reagent/toxin/bonehurtingjuice) - if(2) - H.manual_emote(pick("oofs silently.", "looks like their bones hurt.", "grimaces, as though their bones hurt.")) - if(3) - to_chat(H, "Your bones hurt!") - if(chem.overdosed) - if(prob(4) && iscarbon(H)) //big oof - var/selected_part = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) //God help you if the same limb gets picked twice quickly. - var/obj/item/bodypart/bp = H.get_bodypart(selected_part) //We're so sorry skeletons, you're so misunderstood - if(bp) - playsound(H, get_sfx("desceration"), 50, TRUE, -1) //You just want to socialize - H.visible_message("[H] rattles loudly and flails around!!", "Your bones hurt so much that your missing muscles spasm!!") - H.say("OOF!!", forced=/datum/reagent/toxin/bonehurtingjuice) - bp.receive_damage(200, 0, 0) //But I don't think we should - else - to_chat(H, "Your missing arm aches from wherever you left it.") - H.emote("sigh") - H.reagents.remove_reagent(chem.type, chem.metabolization_rate) - return TRUE - - return ..() - -/datum/action/innate/bonechill - name = "Bone Chill" - desc = "Rattle your bones and strike fear into your enemies!" - check_flags = AB_CHECK_CONSCIOUS - icon_icon = 'icons/mob/actions/actions_spells.dmi' - button_icon_state = "bonechill" - var/cooldown = 600 - var/last_use - var/snas_chance = 3 - -/datum/action/innate/bonechill/Activate() - if(world.time < last_use + cooldown) - to_chat("You aren't ready yet to rattle your bones again!") - return - owner.visible_message("[owner] rattles [owner.p_their()] bones harrowingly.", "You rattle your bones") - last_use = world.time - if(prob(snas_chance)) - playsound(get_turf(owner),'sound/magic/RATTLEMEBONES2.ogg', 100) - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - var/mutable_appearance/badtime = mutable_appearance('icons/mob/human_parts.dmi', "b_golem_eyes", -FIRE_LAYER-0.5) - 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) - else - playsound(get_turf(owner),'sound/magic/RATTLEMEBONES.ogg', 100) - for(var/mob/living/L in orange(7, get_turf(owner))) - if((L.mob_biotypes & MOB_UNDEAD) || isgolem(L) || HAS_TRAIT(L, TRAIT_RESISTCOLD)) - return //Do not affect our brothers - - to_chat(L, "A spine-chilling sound chills you to the bone!") - L.apply_status_effect(/datum/status_effect/bonechill) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "spooked", /datum/mood_event/spooked) - -/datum/species/golem/snow - name = "Snow Golem" - id = "snow golem" - fixed_mut_color = "null" //custom sprites - armor = 45 //down from 55 - burnmod = 3 //melts easily - info_text = "As a Snow Golem, you are extremely vulnerable to burn damage, but you can generate snowballs and shoot cryokinetic beams. You will also turn to snow when dying, preventing any form of recovery." - prefix = "Snow" - special_names = list("Flake", "Blizzard", "Storm") - species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYESPRITES) //no mutcolors, no eye sprites - inherent_traits = list(TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOGUNS,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) - - var/obj/effect/proc_holder/spell/targeted/conjure_item/snowball/ball - var/obj/effect/proc_holder/spell/aimed/cryo/cryo - - species_chest = /obj/item/bodypart/chest/golem/snow - species_head = /obj/item/bodypart/head/golem/snow - species_l_arm = /obj/item/bodypart/l_arm/golem/snow - species_r_arm = /obj/item/bodypart/r_arm/golem/snow - species_l_leg = /obj/item/bodypart/leg/left/golem/snow - species_r_leg = /obj/item/bodypart/leg/right/golem/snow - -/datum/species/golem/snow/spec_death(gibbed, mob/living/carbon/human/H) - H.visible_message("[H] turns into a pile of snow!") - for(var/obj/item/W in H) - H.dropItemToGround(W) - for(var/i=1, i <= rand(3,5), i++) - new /obj/item/stack/sheet/mineral/snow(get_turf(H)) - new /obj/item/reagent_containers/food/snacks/grown/carrot(get_turf(H)) - qdel(H) - -/datum/species/golem/snow/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.weather_immunities |= "snow" - ball = new - ball.charge_counter = 0 - C.AddSpell(ball) - cryo = new - cryo.charge_counter = 0 - C.AddSpell(cryo) - -/datum/species/golem/snow/on_species_loss(mob/living/carbon/C) - . = ..() - C.weather_immunities -= "snow" - if(ball) - C.RemoveSpell(ball) - if(cryo) - C.RemoveSpell(cryo) - -/obj/effect/proc_holder/spell/targeted/conjure_item/snowball - name = "Snowball" - desc = "Concentrates cryokinetic forces to create snowballs, useful for throwing at people." - item_type = /obj/item/toy/snowball - charge_max = 15 - action_icon = 'icons/obj/toy.dmi' - action_icon_state = "snowball" 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/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 888f0c74235f..ec9afd777f2c 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -166,9 +166,6 @@ if("Clown") O = new /datum/outfit/plasmaman/clown - if("Lieutenant") //WS edit plasmaman customization - O = new /datum/outfit/plasmaman/lieutenant //WS edit plasmaman customization - if("SolGov Representative") //WS edit sgr O = new /datum/outfit/plasmaman/solgov 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/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index d7d6754b0e5d..a0e409c2053d 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -571,7 +571,7 @@ There are several things that need to be remembered: remove_overlay(LEGCUFF_LAYER) clear_alert("legcuffed") if(legcuffed) - overlays_standing[LEGCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', "legcuff1", -LEGCUFF_LAYER) + overlays_standing[LEGCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', legcuffed.icon_state, -LEGCUFF_LAYER) apply_overlay(LEGCUFF_LAYER) throw_alert("legcuffed", /atom/movable/screen/alert/restrained/legcuffed, new_master = src.legcuffed) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 7a995dea28da..1363f30e2a62 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -174,7 +174,7 @@ to_chat(src, "You're not holding anything to give!") return - if(has_status_effect(STATUS_EFFECT_OFFERING)) + if(has_status_effect(/datum/status_effect/offering)) to_chat(src, span_warning("You're already offering up something!")) return @@ -184,7 +184,7 @@ //WS End visible_message(span_notice("[src] is offering [offered_item]."), \ span_notice("You offer [offered_item]."), null, 2) - apply_status_effect(STATUS_EFFECT_OFFERING, offered_item) + apply_status_effect(/datum/status_effect/offering, offered_item) /** * Proc called when the player clicks the give alert 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/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/death.dm b/code/modules/mob/living/death.dm index e334655b3848..6615edb051f0 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -52,7 +52,7 @@ unset_machine() timeofdeath = world.time if(ckey) - GLOB.respawn_timers[client?.ckey] = world.timeofday + GLOB.respawn_timers[client?.ckey] = REALTIMEOFDAY tod = station_time_timestamp() var/turf/T = get_turf(src) for(var/obj/item/I in contents) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 7b11668db56a..7b57e5798dec 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)) @@ -453,7 +453,7 @@ if(. && isliving(user)) var/mob/living/L = user L.Paralyze(200) - L.remove_status_effect(STATUS_EFFECT_SURRENDER) + L.remove_status_effect(/datum/status_effect/surrender) /datum/emote/living/sway key = "sway" 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 cd06fa25700f..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) @@ -502,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 @@ -657,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() @@ -862,7 +861,7 @@ set name = "Resist" set category = "IC" - DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/execute_resist)) + 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() @@ -1526,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() @@ -1571,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..daa987904737 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() @@ -711,7 +711,7 @@ for (var/obj/machinery/camera/C in lit_cameras) C.set_light(0) - lit_cameras = list() + lit_cameras = list() return @@ -737,9 +737,15 @@ for (var/obj/machinery/camera/C in remove) lit_cameras -= C //Removed from list before turning off the light so that it doesn't check the AI looking away. C.Togglelight(0) + UnregisterSignal(C, COMSIG_PARENT_QDELETING, PROC_REF(camera_deleted)) for (var/obj/machinery/camera/C in add) C.Togglelight(1) lit_cameras |= C + RegisterSignal(C, COMSIG_PARENT_QDELETING, PROC_REF(camera_deleted)) + +/mob/living/silicon/ai/proc/camera_deleted(obj/machinery/camera/camera) + SIGNAL_HANDLER + lit_cameras -= camera /mob/living/silicon/ai/proc/control_integrated_radio() set name = "Transceiver Settings" 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 2c874ee845f0..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) @@ -690,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) @@ -723,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) @@ -926,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) 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 9bc75267a7dd..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) @@ -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 04ff8f5f54de..daac95f38ba4 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -46,6 +46,25 @@ r_pocket = /obj/item/tank/internals/emergency_oxygen id = /obj/item/card/id/syndicate +/obj/effect/mob_spawn/human/corpse/syndicateramzi + name = "Ramzi's Clique Commando" + id_job = "Cutthroat" + hairstyle = "Bald" + facial_hairstyle = "Shaved" + outfit = /datum/outfit/syndicateramzicorpse + +/datum/outfit/syndicateramzicorpse + name = "Ramzi's Clique Commando Corpse" + uniform = /obj/item/clothing/under/syndicate/gorlex + suit = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + ears = /obj/item/radio/headset + mask = /obj/item/clothing/mask/gas/syndicate + back = /obj/item/tank/jetpack/oxygen + r_pocket = /obj/item/tank/internals/emergency_oxygen + id = /obj/item/card/id/syndicate + /obj/effect/mob_spawn/human/corpse/syndicatestormtrooper name = "Syndicate Stormtrooper" 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/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/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/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..bd09f06f3521 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -132,8 +132,6 @@ Difficulty: Very Hard if(H.mind) if(istype(H.mind.martial_art, /datum/martial_art/the_sleeping_carp)) . = TRUE - if (is_species(H, /datum/species/golem/sand)) - . = TRUE /mob/living/simple_animal/hostile/megafauna/colossus/proc/alternating_dir_shots() ranged_cooldown = world.time + 40 @@ -156,8 +154,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 +238,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/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 120b850cf428..297d6ad49160 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -46,7 +46,7 @@ . = ..() if(gps_name && true_spawn) AddComponent(/datum/component/gps, gps_name) - apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + apply_status_effect(/datum/status_effect/crusher_damage) ADD_TRAIT(src, TRAIT_NO_TELEPORT, MEGAFAUNA_TRAIT) ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) for(var/action_type in attack_action_types) @@ -71,7 +71,7 @@ if(health > 0) return else - var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + var/datum/status_effect/crusher_damage/C = has_status_effect(/datum/status_effect/crusher_damage) var/crusher_kill = FALSE if(C && crusher_loot && C.total_damage >= maxHealth * 0.6) spawn_crusher_loot() 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..c078196749fc 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,26 +321,27 @@ /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 for(var/mob/living/L in loc) if((!QDELETED(spawner) && spawner.faction_check_mob(L)) || L.stat == DEAD) continue - visible_message("[src] grabs hold of [L]!") + visible_message("[src] wraps a mass of tentacles around [L]!") on_hit(L) latched = TRUE if(!latched) retract() else deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/retract), 10, TIMER_STOPPABLE) - -/obj/effect/temp_visual/goliath_tentacle/proc/on_hit(mob/living/L) - L.Stun(100) - L.adjustBruteLoss(rand(10,15)) + timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE) +/obj/effect/temp_visual/goliath_tentacle/proc/on_hit(mob/living/target) + target.apply_damage(rand(20,30), BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) + if(iscarbon(target)) + var/obj/item/restraints/legcuffs/beartrap/goliath/B = new /obj/item/restraints/legcuffs/beartrap/goliath(get_turf(target)) + B.on_entered(src, target) /obj/effect/temp_visual/goliath_tentacle/proc/retract() icon_state = "marker" @@ -392,13 +393,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..474c9c5d9ca6 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() @@ -413,12 +413,12 @@ "Miner" = 44, "Waldo" = 3, "Ashwalker" = 7, - "Soldier" = 3, + "Soldier" = 5, "Oldminer" = 8, "Kobold" = 5, - "Golem" = 6, - "SRM" = 10, - pick("Shadow", "YeOlde", "Operative", "Cultist") = 4 + "SRM" = 6, + "Operative" = 5, + pick("Shadow", "YeOlde") = 4 ) ) switch(type) @@ -796,119 +796,6 @@ r_pocket = /obj/item/kitchen/knife/combat/bone if(prob(30)) l_pocket = /obj/item/kitchen/knife/combat/bone - if("Golem") - mob_species = pickweight(list( - /datum/species/golem/adamantine = 5, - /datum/species/golem/plasma = 10, - /datum/species/golem/diamond = 10, - /datum/species/golem/gold = 10, - /datum/species/golem/silver = 10, - /datum/species/golem/plasteel = 10, - /datum/species/golem/titanium = 10, - /datum/species/golem/plastitanium = 10 - ) - ) - if(prob(70)) - back = /obj/item/storage/backpack - backpack_contents = list() - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/slime_extract/grey = 1, - /obj/item/slime_scanner = 1, - /obj/item/resonator/upgraded = 1, - /obj/item/gps = 1, - /obj/item/fulton_core = 2, - /obj/item/extraction_pack = 3, - /obj/item/stack/sheet/mineral/plasma/twenty = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/flashlight/seclite=3, - /obj/item/research_notes/loot/medium = 3, - /obj/item/stack/sheet/metal/fifty = 3, - /obj/item/research_notes/loot/big = 1 - ) - ) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/slime_extract/grey = 1, - /obj/item/slime_scanner = 1, - /obj/item/resonator/upgraded = 1, - /obj/item/gps = 1, - /obj/item/fulton_core = 2, - /obj/item/extraction_pack = 3, - /obj/item/stack/sheet/mineral/plasma/twenty = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/flashlight/seclite=3, - /obj/item/research_notes/loot/medium = 3, - /obj/item/stack/sheet/metal/fifty = 3, - /obj/item/research_notes/loot/big = 1 - ) - ) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/slime_extract/grey = 1, - /obj/item/slime_scanner = 1, - /obj/item/resonator/upgraded = 1, - /obj/item/gps = 1, - /obj/item/fulton_core = 2, - /obj/item/extraction_pack = 3, - /obj/item/stack/sheet/mineral/plasma/twenty = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/flashlight/seclite=3, - /obj/item/research_notes/loot/medium = 3, - /obj/item/stack/sheet/metal/fifty = 3, - /obj/item/research_notes/loot/big = 1 - ) - ) - if(prob(3)) - backpack_contents += list( - /obj/item/storage/box/rndboards - ) - if(prob(20)) - backpack_contents += pickweight(list( - /obj/item/storage/box/stockparts/basic = 4, - /obj/item/storage/box/stockparts/t2 = 3, - /obj/item/storage/box/stockparts/t3 = 2, - /obj/item/storage/box/stockparts/deluxe = 1 - ) - ) - if(prob(30)) - glasses = pickweight(list( - /obj/item/clothing/glasses/meson = 2, - /obj/item/clothing/glasses/hud/health = 2, - /obj/item/clothing/glasses/hud/diagnostic =2, - /obj/item/clothing/glasses/science = 2, - /obj/item/clothing/glasses/welding = 2, - /obj/item/clothing/glasses/night = 1 - ) - ) - if(prob(10)) - belt = pickweight(list( - /obj/item/storage/belt/mining/vendor, - /obj/item/storage/belt/utility/full - ) - ) - if(prob(50)) - neck = /obj/item/bedsheet/rd/royal_cape - if(prob(10)) - l_pocket = pickweight(list( - /obj/item/crowbar/power, - /obj/item/screwdriver/power, - /obj/item/weldingtool/experimental - ) - ) - if(prob(10)) - r_pocket = pickweight(list( - /obj/item/crowbar/power, - /obj/item/screwdriver/power, - /obj/item/weldingtool/experimental - ) - ) if("YeOlde") mob_gender = FEMALE uniform = /obj/item/clothing/under/costume/maid @@ -922,10 +809,12 @@ mask = /obj/item/clothing/mask/breath if("Operative") id_job = "Operative" - if(prob(15)) + if(prob(40)) + outfit = /datum/outfit/syndicatecommandocorpse + else if(prob(5)) outfit = /datum/outfit/syndicatestormtroopercorpse else - outfit = /datum/outfit/syndicatecommandocorpse + outfit = /datum/outfit/syndicateramzicorpse if("Waldo")//WE FINALLY FOUND HIM name = "Waldo" uniform = /obj/item/clothing/under/pants/jeans @@ -1004,20 +893,6 @@ glasses = /obj/item/clothing/glasses/blindfold back = /obj/item/tank/internals/oxygen mask = /obj/item/clothing/mask/breath - if("Cultist") - uniform = /obj/item/clothing/under/costume/roman - suit = /obj/item/clothing/suit/hooded/cultrobes - suit_store = /obj/item/tome - r_pocket = /obj/item/restraints/legcuffs/bola/cult - l_pocket = /obj/item/melee/cultblade/dagger - glasses = /obj/item/clothing/glasses/hud/health/night/cultblind - back = /obj/item/storage/backpack/cultpack - backpack_contents = list( - /obj/item/reagent_containers/glass/beaker/unholywater = 1, - /obj/item/cult_shift = 1, - /obj/item/flashlight/flare/culttorch = 1, - /obj/item/stack/sheet/runed_metal = 15 - ) if("SRM") uniform = /obj/item/clothing/under/suit/roumain shoes = /obj/item/clothing/shoes/workboots/mining @@ -1036,5 +911,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/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index b66c71fd58b2..e91641bb3688 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -32,7 +32,7 @@ stack_trace("Invalid type [armor.type] found in .armor during [src.type] Initialize()") //WS edit begin - Whitesands . = ..() - apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + apply_status_effect(/datum/status_effect/crusher_damage) /mob/living/simple_animal/hostile/asteroid/Aggro() ..() @@ -70,7 +70,7 @@ /mob/living/simple_animal/hostile/asteroid/death(gibbed) SSblackbox.record_feedback("tally", "mobs_killed_mining", 1, type) - var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + var/datum/status_effect/crusher_damage/C = has_status_effect(/datum/status_effect/crusher_damage) if(C && crusher_loot && prob((C.total_damage/maxHealth) * crusher_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item spawn_crusher_loot() ..(gibbed) 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..6f1db7aaf996 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 @@ -58,17 +58,6 @@ corpse.forceMove(drop_location()) corpse.create() -/mob/living/simple_animal/hostile/zombie/leatherman - name = "Leatherman" - desc = "Fuck you!" - icon = 'icons/mob/simple_human.dmi' - icon_state = "zombie_leather" - icon_living = "zombie_leather" - maxHealth = 60 - health = 60 - melee_damage_lower = 11 - melee_damage_upper = 11 - /mob/living/simple_animal/hostile/zombie/kudzu name = "shambling bramble" desc = "A shambling mass of vibrant vines and rotting flesh. " 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/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 8eb5bc620722..8e4364aa1486 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -6,7 +6,7 @@ ////////////////////////////// STUN //////////////////////////////////// /mob/living/proc/IsStun() //If we're stunned - return has_status_effect(STATUS_EFFECT_STUN) + return has_status_effect(/datum/status_effect/incapacitating/stun) /mob/living/proc/AmountStun() //How many deciseconds remain in our stun var/datum/status_effect/incapacitating/stun/S = IsStun() @@ -24,7 +24,7 @@ if(S) S.duration = max(world.time + amount, S.duration) else if(amount > 0) - S = apply_status_effect(STATUS_EFFECT_STUN, amount) + S = apply_status_effect(/datum/status_effect/incapacitating/stun, amount) return S /mob/living/proc/SetStun(amount, ignore_canstun = FALSE) //Sets remaining duration @@ -41,7 +41,7 @@ if(S) S.duration = world.time + amount else - S = apply_status_effect(STATUS_EFFECT_STUN, amount) + S = apply_status_effect(/datum/status_effect/incapacitating/stun, amount) return S /mob/living/proc/AdjustStun(amount, ignore_canstun = FALSE) //Adds to remaining duration @@ -54,13 +54,13 @@ if(S) S.duration += amount else if(amount > 0) - S = apply_status_effect(STATUS_EFFECT_STUN, amount) + S = apply_status_effect(/datum/status_effect/incapacitating/stun, amount) return S ///////////////////////////////// KNOCKDOWN ///////////////////////////////////// /mob/living/proc/IsKnockdown() //If we're knocked down - return has_status_effect(STATUS_EFFECT_KNOCKDOWN) + return has_status_effect(/datum/status_effect/incapacitating/knockdown) /mob/living/proc/AmountKnockdown() //How many deciseconds remain in our knockdown var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() @@ -69,7 +69,7 @@ return 0 /mob/living/proc/Knockdown(amount, ignore_canstun = FALSE) //Can't go below remaining duration - if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_KNOCKDOWN, amount, ignore_canstun) & COMPONENT_NO_STUN) + if(SEND_SIGNAL(src, /datum/status_effect/incapacitating/knockdown, amount, ignore_canstun) & COMPONENT_NO_STUN) return if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) if(absorb_stun(amount, ignore_canstun)) @@ -78,7 +78,7 @@ if(K) K.duration = max(world.time + amount, K.duration) else if(amount > 0) - K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount) + K = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) return K /mob/living/proc/SetKnockdown(amount, ignore_canstun = FALSE) //Sets remaining duration @@ -95,7 +95,7 @@ if(K) K.duration = world.time + amount else - K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount) + K = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) return K /mob/living/proc/AdjustKnockdown(amount, ignore_canstun = FALSE) //Adds to remaining duration @@ -108,12 +108,12 @@ if(K) K.duration += amount else if(amount > 0) - K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount) + K = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) return K ///////////////////////////////// IMMOBILIZED //////////////////////////////////// /mob/living/proc/IsImmobilized() //If we're immobilized - return has_status_effect(STATUS_EFFECT_IMMOBILIZED) + return has_status_effect(/datum/status_effect/incapacitating/immobilized) /mob/living/proc/AmountImmobilized() //How many deciseconds remain in our Immobilized status effect var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized() @@ -131,7 +131,7 @@ if(I) I.duration = max(world.time + amount, I.duration) else if(amount > 0) - I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount) + I = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) return I /mob/living/proc/SetImmobilized(amount, ignore_canstun = FALSE) //Sets remaining duration @@ -148,7 +148,7 @@ if(I) I.duration = world.time + amount else - I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount) + I = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) return I /mob/living/proc/AdjustImmobilized(amount, ignore_canstun = FALSE) //Adds to remaining duration @@ -161,12 +161,12 @@ if(I) I.duration += amount else if(amount > 0) - I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount) + I = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) return I ///////////////////////////////// PARALYZED ////////////////////////////////// /mob/living/proc/IsParalyzed() //If we're immobilized - return has_status_effect(STATUS_EFFECT_PARALYZED) + return has_status_effect(/datum/status_effect/incapacitating/paralyzed) /mob/living/proc/AmountParalyzed() //How many deciseconds remain in our Paralyzed status effect var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE) @@ -184,7 +184,7 @@ if(P) P.duration = max(world.time + amount, P.duration) else if(amount > 0) - P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount) + P = apply_status_effect(/datum/status_effect/incapacitating/paralyzed, amount) return P /mob/living/proc/SetParalyzed(amount, ignore_canstun = FALSE) //Sets remaining duration @@ -201,7 +201,7 @@ if(P) P.duration = world.time + amount else - P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount) + P = apply_status_effect(/datum/status_effect/incapacitating/paralyzed, amount) return P /mob/living/proc/AdjustParalyzed(amount, ignore_canstun = FALSE) //Adds to remaining duration @@ -214,7 +214,7 @@ if(P) P.duration += amount else if(amount > 0) - P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount) + P = apply_status_effect(/datum/status_effect/incapacitating/paralyzed, amount) return P //Blanket @@ -241,7 +241,7 @@ //////////////////UNCONSCIOUS /mob/living/proc/IsUnconscious() //If we're unconscious - return has_status_effect(STATUS_EFFECT_UNCONSCIOUS) + return has_status_effect(/datum/status_effect/incapacitating/unconscious) /mob/living/proc/AmountUnconscious() //How many deciseconds remain in our unconsciousness var/datum/status_effect/incapacitating/unconscious/U = IsUnconscious() @@ -257,7 +257,7 @@ if(U) U.duration = max(world.time + amount, U.duration) else if(amount > 0) - U = apply_status_effect(STATUS_EFFECT_UNCONSCIOUS, amount) + U = apply_status_effect(/datum/status_effect/incapacitating/unconscious, amount) return U /mob/living/proc/SetUnconscious(amount, ignore_canstun = FALSE) //Sets remaining duration @@ -271,7 +271,7 @@ else if(U) U.duration = world.time + amount else - U = apply_status_effect(STATUS_EFFECT_UNCONSCIOUS, amount) + U = apply_status_effect(/datum/status_effect/incapacitating/unconscious, amount) return U /mob/living/proc/AdjustUnconscious(amount, ignore_canstun = FALSE) //Adds to remaining duration @@ -282,13 +282,13 @@ if(U) U.duration += amount else if(amount > 0) - U = apply_status_effect(STATUS_EFFECT_UNCONSCIOUS, amount) + U = apply_status_effect(/datum/status_effect/incapacitating/unconscious, amount) return U /////////////////////////////////// SLEEPING //////////////////////////////////// /mob/living/proc/IsSleeping() //If we're asleep - return has_status_effect(STATUS_EFFECT_SLEEPING) + return has_status_effect(/datum/status_effect/incapacitating/sleeping) /mob/living/proc/AmountSleeping() //How many deciseconds remain in our sleep var/datum/status_effect/incapacitating/sleeping/S = IsSleeping() @@ -303,7 +303,7 @@ if(S) S.duration = max(world.time + amount, S.duration) else if(amount > 0) - S = apply_status_effect(STATUS_EFFECT_SLEEPING, amount) + S = apply_status_effect(/datum/status_effect/incapacitating/sleeping, amount) return S /mob/living/proc/SetSleeping(amount) //Sets remaining duration @@ -316,7 +316,7 @@ else if(S) S.duration = world.time + amount else - S = apply_status_effect(STATUS_EFFECT_SLEEPING, amount) + S = apply_status_effect(/datum/status_effect/incapacitating/sleeping, amount) return S /mob/living/proc/AdjustSleeping(amount) //Adds to remaining duration @@ -326,7 +326,7 @@ if(S) S.duration += amount else if(amount > 0) - S = apply_status_effect(STATUS_EFFECT_SLEEPING, amount) + S = apply_status_effect(/datum/status_effect/incapacitating/sleeping, amount) return S ///Allows us to set a permanent sleep on a player (use with caution and remember to unset it with SetSleeping() after the effect is over) @@ -337,7 +337,7 @@ if(S) S.duration = -1 else - S = apply_status_effect(STATUS_EFFECT_SLEEPING, -1) + S = apply_status_effect(/datum/status_effect/incapacitating/sleeping, -1) return S ///////////////////////////////// FROZEN ///////////////////////////////////// diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d48db130f983..9af72b034998 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -453,7 +453,7 @@ set name = "Examine" set category = "IC" - DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/run_examinate, examinify)) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(run_examinate), examinify)) /mob/proc/run_examinate(atom/examinify) @@ -472,8 +472,8 @@ 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/clear_from_recent_examines, override=TRUE) // to flush the value if deleted early - addtimer(CALLBACK(src, .proc/clear_from_recent_examines, examinify), EXAMINE_MORE_TIME) + 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 = examinify.examine_more(src) @@ -559,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) @@ -608,7 +608,7 @@ set category = "Object" set src = usr - DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/execute_mode)) + 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() @@ -623,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 * @@ -689,7 +705,7 @@ log_game("[key_name(usr)] AM failed due to disconnect.") if(GLOB.respawn_timers[usrkey] && !admin_bypass) - var/time_left = GLOB.respawn_timers[usrkey] + respawn_timer - world.timeofday + var/time_left = GLOB.respawn_timers[usrkey] + respawn_timer - REALTIMEOFDAY if(time_left > 0) to_chat(usr, "You still have [DisplayTimeText(time_left)] left before you can respawn.") return @@ -1079,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 @@ -1094,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) @@ -1179,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() @@ -1403,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/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/computers/item/laptop_presets.dm b/code/modules/modular_computers/computers/item/laptop_presets.dm index 6bc2919bea3b..a774799ada4c 100644 --- a/code/modules/modular_computers/computers/item/laptop_presets.dm +++ b/code/modules/modular_computers/computers/item/laptop_presets.dm @@ -20,3 +20,15 @@ /obj/item/modular_computer/laptop/preset/civilian/install_programs() var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] hard_drive.store_file(new/datum/computer_file/program/chatclient()) + +/obj/item/modular_computer/laptop/preset/civilian/rilena + name = "RILENA:LMR laptop" + desc = "A laptop themed around the popular combination webcomic and video game series RILENA." + icon_state = "laptop-closed_rilena" + icon_state_powered = "laptop_rilena" + icon_state_unpowered = "laptop-off_rilena" + icon_state_closed = "laptop-closed_rilena" + +/obj/item/modular_computer/laptop/preset/civilian/rilena/install_programs() + //var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] + //hard_drive.store_file(new/datum/computer_file/program/rilena()) //temporarily disabling this so it doesn't ruin anything 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/rilena.dm b/code/modules/modular_computers/file_system/programs/rilena.dm new file mode 100644 index 000000000000..bf234dfa3f22 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/rilena.dm @@ -0,0 +1,13 @@ +/datum/computer_file/program/rilena + filename = "rilena" + filedesc = "RILENA:LMR Part 1" + program_icon_state = "holocontrol" + extended_desc = "The first entry in the popular RILENA webseries games. Not counting the countless fan prequels." + usage_flags = PROGRAM_LAPTOP + requires_ntnet = TRUE + available_on_ntnet = FALSE //don't let people download for now, since it doesn't do anything + program_icon = "gamepad" + size = 8 + tgui_id = "NtosRilena" + +//insert stuff here, empty for now 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/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 8263b3c7dcf4..c1ec7fb45078 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -1,6 +1,3 @@ -/datum/movespeed_modifier/obesity - multiplicative_slowdown = 1.5 - /datum/movespeed_modifier/monkey_reagent_speedmod variable = TRUE 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..5244f2850188 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 @@ -217,24 +222,27 @@ if(!istype(dock_target)) CRASH("Overmap datum [src] tried to dock to an invalid overmap datum.") if(docked_to) - CRASH("Overmap datum [src] tried to dock to [docked_to] when it is already docked to another overmap datum.") + CRASH("Overmap datum [src] tried to dock to [dock_target] when it is already docked to another overmap datum ([docked_to])!.") - 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..69591c71dc8e 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 @@ -86,7 +90,7 @@ if(planet_name) for(var/mob/Mob as anything in GLOB.player_list) if(dock_requester.shuttle_port.is_in_shuttle_bounds(Mob)) - Mob.play_screen_text("[planet_name]
    [station_time_timestamp_fancy("hh:mm")]") + Mob.play_screen_text("[planet_name]
    [station_time_timestamp("hh:mm")]") playsound(Mob, landing_sound, 50) @@ -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 8613d9ee62de..158827693335 100644 --- a/code/modules/overmap/objects/outpost/outpost.dm +++ b/code/modules/overmap/objects/outpost/outpost.dm @@ -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,17 +211,13 @@ ) 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")]") + M.play_screen_text("[name]
    [station_time_timestamp("hh:mm")]") // Instance the virtual speaker for use in radio messages. It needs an atom to trace things back to; we use the token. // You might think "but wait, can't we just keep one speaker around instead of instancing it for each fucking radio message?" @@ -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 fd30ff4e8ab8..044ff026c396 100644 --- a/code/modules/overmap/objects/outpost/outpost_types.dm +++ b/code/modules/overmap/objects/outpost/outpost_types.dm @@ -2,6 +2,13 @@ Map templates */ +/datum/map_template/outpost + // Necessary to stop planetary outposts from having space underneath all their turfs. + // They were being "placed on top", so instead of their baseturf, there was just space underneath. + // (Interestingly, this is much less of a problem for ruins: PlaceOnTop ignores the top closed turf in the baseturfs stack + // of the new tile, meaning that placing plating on top of a wall doesn't result in a wall underneath the plating.) + should_place_on_top = FALSE + /datum/map_template/outpost/New() . = ..(path = "_maps/outpost/[name].dmm") @@ -12,6 +19,13 @@ /datum/map_template/outpost/elevator_test name = "elevator_test" +/datum/map_template/outpost/elevator_indie + name = "elevator_indie" + +/datum/map_template/outpost/elevator_ice + name = "elevator_ice" + + /* Independent Space Outpost //creative name! */ @@ -74,6 +88,37 @@ dock_width = 56 dock_height = 40 +/* + Nanotrasen Ice Planet +*/ +/datum/map_template/outpost/nanotrasen_ice + name = "nanotrasen_ice" + +/datum/map_template/outpost/hangar/nt_ice_20x20 + name = "hangar/nt_ice_20x20" + dock_width = 20 + dock_height = 20 + +/datum/map_template/outpost/hangar/nt_ice_40x20 + name = "hangar/nt_ice_40x20" + dock_width = 40 + dock_height = 20 + +/datum/map_template/outpost/hangar/nt_ice_40x40 + name = "hangar/nt_ice_40x40" + dock_width = 40 + dock_height = 40 + +/datum/map_template/outpost/hangar/nt_ice_56x20 + name = "hangar/nt_ice_56x20" + dock_width = 56 + dock_height = 20 + +/datum/map_template/outpost/hangar/nt_ice_56x40 + name = "hangar/nt_ice_56x40" + dock_width = 56 + dock_height = 40 + /* /datum/overmap/outpost subtypes */ @@ -81,9 +126,9 @@ /datum/overmap/outpost/indie_space token_icon_state = "station_1" main_template = /datum/map_template/outpost/indie_space - elevator_template = /datum/map_template/outpost/elevator_test - // Uses "test" hangars. - + elevator_template = /datum/map_template/outpost/elevator_indie + // Uses "default" hangars (indie_space). +/* /datum/overmap/outpost/nanotrasen_asteroid token_icon_state = "station_asteroid_0" main_template = /datum/map_template/outpost/nt_asteroid @@ -96,6 +141,18 @@ /datum/map_template/outpost/hangar/nt_asteroid_56x20, /datum/map_template/outpost/hangar/nt_asteroid_56x40 ) +*/ +/datum/overmap/outpost/nanotrasen_ice + token_icon_state = "station_asteroid_0" + main_template = /datum/map_template/outpost/nanotrasen_ice + elevator_template = /datum/map_template/outpost/elevator_ice + hangar_templates = list( + /datum/map_template/outpost/hangar/nt_ice_20x20, + /datum/map_template/outpost/hangar/nt_ice_40x20, + /datum/map_template/outpost/hangar/nt_ice_40x40, + /datum/map_template/outpost/hangar/nt_ice_56x20, + /datum/map_template/outpost/hangar/nt_ice_56x40 + ) /datum/overmap/outpost/no_main_level // For example and adminspawn. main_template = null diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index a04355197dd6..da35c3b9df9c 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 @@ -114,6 +116,7 @@ . = ..() SSovermap.controlled_ships -= src helms.Cut() + QDEL_LIST(missions) LAZYCLEARLIST(owner_candidates) if(!QDELETED(shuttle_port)) shuttle_port.current_ship = null @@ -139,8 +142,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 +290,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 +317,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 +331,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/owner_action.dm b/code/modules/overmap/ships/owner_action.dm index 515db9b5f470..04169054b2e6 100644 --- a/code/modules/overmap/ships/owner_action.dm +++ b/code/modules/overmap/ships/owner_action.dm @@ -134,7 +134,7 @@ if("memo") var/memo_result = sanitize(stripped_multiline_input( - user, "Enter a message for prospective players joining your ship. Playstyle and RP level information is encouraged.", + user, "Enter a message for prospective players joining your ship. This information could include your goals for the outing, or details about the way your ship may play.", "Ship Memo", parent_ship.memo )) // stripped_multiline_input returns an empty string if people press Cancel, but 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/fax_manager.dm b/code/modules/paperwork/fax_manager.dm index bde646712b96..0107e440bec2 100644 --- a/code/modules/paperwork/fax_manager.dm +++ b/code/modules/paperwork/fax_manager.dm @@ -121,7 +121,7 @@ GLOBAL_DATUM_INIT(fax_manager, /datum/fax_manager, new) var/list/request = list() var/obj/item/paper/request/message = new() request["id_message"] = requests.len - request["time"] = gameTimestamp() + request["time"] = game_timestamp() request["sender"] = sender request["sender_fax_id"] = sender_fax.fax_id request["sender_fax_name"] = sender_fax.fax_name 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 fd8a8e1a510c..e959304efe4f 100644 --- a/code/modules/point/point.dm +++ b/code/modules/point/point.dm @@ -102,7 +102,7 @@ if(istype(A, /obj/effect/temp_visual/point)) return FALSE - DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/_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 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f8156a97a5d4..03bb1651fd70 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 @@ -303,11 +303,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) if(auto_name) name = "\improper [get_area_name(area, TRUE)] APC" - update_icon() + update_appearance() make_terminal() - addtimer(CALLBACK(src, .proc/update), 5) + addtimer(CALLBACK(src, PROC_REF(update)), 5) /obj/machinery/power/apc/examine(mob/user) . = ..() @@ -342,12 +342,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) if(!cell) //it always peeved me that abandoned ships always had the apc lights on. this should fix it icon_update_needed = FALSE set_light(0) - return - if(cell.charge <= 0) + else if(cell.charge <= 0) icon_update_needed = FALSE set_light(0) - return //this may need to be moved up!! . = ..() // And now, separately for cleanness, the lighting changing @@ -360,12 +358,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) if(APC_FULLY_CHARGED) set_light_color(LIGHT_COLOR_GREEN) set_light(lon_range) - return - if(update_state & UPSTATE_BLUESCREEN) + else if(update_state & UPSTATE_BLUESCREEN) set_light_color(LIGHT_COLOR_BLUE) set_light(lon_range) - return /obj/machinery/power/apc/update_icon_state() if(!update_state) @@ -501,7 +497,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) else if (opened!=APC_COVER_REMOVED) opened = APC_COVER_CLOSED coverlocked = TRUE //closing cover relocks it - update_icon() + update_appearance() return else if (!(machine_stat & BROKEN)) if(coverlocked && !(machine_stat & MAINT)) // locked... @@ -512,7 +508,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) return else opened = APC_COVER_OPENED - update_icon() + update_appearance() return /obj/machinery/power/apc/screwdriver_act(mob/living/user, obj/item/W) @@ -524,10 +520,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) user.visible_message("[user] removes \the [cell] from [src]!", "You remove \the [cell].") var/turf/T = get_turf(user) cell.forceMove(T) - cell.update_icon() + cell.update_appearance() cell = null charging = APC_NOT_CHARGING - update_icon() + update_appearance() return else switch (has_electronics) @@ -544,14 +540,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) else to_chat(user, "There is nothing to secure!") return - update_icon() + update_appearance() else if(obj_flags & EMAGGED) to_chat(user, "The interface is broken!") return else panel_open = !panel_open to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"].") - update_icon() + update_appearance() /obj/machinery/power/apc/wirecutter_act(mob/living/user, obj/item/W) . = ..() @@ -599,7 +595,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) user.visible_message("[user.name] inserts the power cell to [src.name]!",\ "You insert the power cell.") chargecount = 0 - update_icon() + update_appearance() else if (W.GetID()) togglelock(user) else if (istype(W, /obj/item/stack/cable_coil) && opened) @@ -677,7 +673,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) chargecount = 0 user.visible_message("[user] fabricates a weak power cell and places it into [src].", \ "Your [P.name] whirrs with strain as you create a weak power cell and place it into [src]!") - update_icon() + update_appearance() else to_chat(user, "[src] has both electronics and a cell.") return @@ -692,7 +688,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) to_chat(user, "You replace missing APC's cover.") qdel(W) opened = APC_COVER_OPENED - update_icon() + update_appearance() return if (has_electronics) to_chat(user, "You cannot repair this APC until you remove the electronics still inside!") @@ -706,7 +702,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) obj_integrity = max_integrity if (opened==APC_COVER_REMOVED) opened = APC_COVER_OPENED - update_icon() + update_appearance() else if(istype(W, /obj/item/apc_powercord)) return //because we put our fancy code in the right places, and this is all in the powercord's afterattack() @@ -754,7 +750,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) chargecount = 0 user.visible_message("[user] fabricates a weak power cell and places it into [src].", \ "Your [the_rcd.name] whirrs with strain as you create a weak power cell and place it into [src]!") - update_icon() + update_appearance() return TRUE else to_chat(user, "[src] has both electronics and a cell.") @@ -781,7 +777,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) if(allowed(usr) && !wires.is_cut(WIRE_IDSCAN) && !malfhack) locked = !locked to_chat(user, "You [ locked ? "lock" : "unlock"] the APC interface.") - update_icon() + update_appearance() updateUsrDialog() else to_chat(user, "Access denied.") @@ -811,7 +807,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) opened = APC_COVER_REMOVED coverlocked = FALSE visible_message("The APC cover is knocked down!") - update_icon() + update_appearance() /obj/machinery/power/apc/emag_act(mob/user) if(!(obj_flags & EMAGGED) && !malfhack) @@ -827,7 +823,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) obj_flags |= EMAGGED locked = FALSE to_chat(user, "You emag the APC interface.") - update_icon() + update_appearance() // attack with hand - remove cell (if cover open) or interact with the APC @@ -890,10 +886,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) if(cell) user.visible_message("[user] removes \the [cell] from [src]!", "You remove \the [cell].") user.put_in_hands(cell) - cell.update_icon() + cell.update_appearance() src.cell = null charging = APC_NOT_CHARGING - src.update_icon() + src.update_appearance() return if((machine_stat & MAINT) && !opened) //no board; no interface return @@ -1027,7 +1023,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) to_chat(usr, "The APC does not respond to the command!") else locked = !locked - update_icon() + update_appearance() . = TRUE if("cover") coverlocked = !coverlocked @@ -1042,20 +1038,20 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) chargemode = !chargemode if(!chargemode) charging = APC_NOT_CHARGING - update_icon() + update_appearance() . = TRUE if("channel") if(params["eqp"]) equipment = setsubsystem(text2num(params["eqp"])) - update_icon() + update_appearance() update() else if(params["lgt"]) lighting = setsubsystem(text2num(params["lgt"])) - update_icon() + update_appearance() update() else if(params["env"]) environ = setsubsystem(text2num(params["env"])) - update_icon() + update_appearance() update() . = TRUE if("overload") @@ -1076,14 +1072,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) malfhidehack(usr) //EndWS Edit - Malf AI Rework if("reboot") failure_timer = 0 - update_icon() + update_appearance() update() if("emergency_lighting") emergency_lights = !emergency_lights 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 @@ -1094,7 +1090,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) add_hiddenprint(user) log_game("[key_name(user)] turned [operating ? "on" : "off"] the [src] in [AREACOORD(src)]") update() - update_icon() + update_appearance() /obj/machinery/power/apc/proc/malfhack(mob/living/silicon/ai/malf) if(!istype(malf)) @@ -1106,7 +1102,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,14 +1125,14 @@ 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) A.target = src malfhackhide = 1 - update_icon() + update_appearance() /obj/machinery/power/apc/proc/malfunhidehack(mob/living/silicon/ai/malf) if(src.machine_stat & BROKEN) @@ -1146,7 +1142,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 +1490,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 +1516,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..d17e12264706 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -28,7 +28,7 @@ var/allow_switch_interact = TRUE var/projectile_type = /obj/projectile/beam/emitter/hitscan //WS - Hitscan emitters - var/projectile_sound = 'sound/weapons/emitter.ogg' + var/projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg' var/datum/effect_system/spark_spread/sparks var/obj/item/gun/energy/gun @@ -41,20 +41,6 @@ var/last_projectile_params -/obj/machinery/power/emitter/welded/Initialize() - welded = TRUE - return ..() - -/obj/machinery/power/emitter/ctf - name = "Energy Cannon" - active = TRUE - active_power_usage = FALSE - idle_power_usage = FALSE - locked = TRUE - req_access_txt = "100" - welded = TRUE - use_power = FALSE - /obj/machinery/power/emitter/Initialize() . = ..() RefreshParts() @@ -113,7 +99,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) @@ -371,6 +357,26 @@ if(user) user.visible_message("[user.name] emags [src].", "You short out the lock.") +/obj/machinery/power/emitter/ctf + name = "Energy Cannon" + active = TRUE + active_power_usage = FALSE + idle_power_usage = FALSE + locked = TRUE + req_access_txt = "100" + welded = TRUE + use_power = FALSE + +/obj/machinery/power/emitter/welded/Initialize() + welded = TRUE + return ..() + +/obj/machinery/power/emitter/welded/upgraded/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/stock_parts/micro_laser/quadultra(null) + component_parts += new /obj/item/stock_parts/manipulator/femto(null) + RefreshParts() /obj/machinery/power/emitter/prototype name = "Prototype Emitter" 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/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index ff6c42284055..63c8340e99bd 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -86,3 +86,10 @@ icon_state = "rifle-steel" caliber = ".308 Winchester" projectile_type = /obj/projectile/bullet/win308 + +/obj/item/ammo_casing/caseless/c299 + name = ".229 Eoehoma caseless bullet casing" + desc = "A .229 Eoehoma caseless bullet casing." + icon_state = "caseless" + caliber = ".299 caseless" + projectile_type = /obj/projectile/bullet/c299 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/_energy.dm b/code/modules/projectiles/ammunition/energy/_energy.dm index 25dae693dbab..c82e01306c0a 100644 --- a/code/modules/projectiles/ammunition/energy/_energy.dm +++ b/code/modules/projectiles/ammunition/energy/_energy.dm @@ -5,7 +5,7 @@ projectile_type = /obj/projectile/energy var/e_cost = 1000 //The amount of energy a cell needs to expend to create this shot. var/select_name = "energy" - fire_sound = 'sound/weapons/laser.ogg' + fire_sound = 'sound/weapons/gun/laser/nt-fire.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/energy heavy_metal = FALSE delay = 5 diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index 05653dab0bd8..dd68cd2e5619 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -2,15 +2,36 @@ projectile_type = /obj/projectile/beam/laser select_name = "kill" +/obj/item/ammo_casing/energy/laser/eoehoma + projectile_type = /obj/projectile/beam/laser/eoehoma + fire_sound = 'sound/weapons/gun/laser/e-fire.ogg' + +/obj/item/ammo_casing/energy/laser/assault + projectile_type = /obj/projectile/beam/laser/assault + fire_sound = 'sound/weapons/gun/laser/e40_las.ogg' + delay = 2 + e_cost = 666 //30 per upgraded cell + +/obj/item/ammo_casing/energy/laser/eoehoma/e50 + projectile_type = /obj/projectile/beam/emitter/hitscan + fire_sound = 'sound/weapons/gun/laser/heavy_laser.ogg' + e_cost = 12500 + delay = 1 SECONDS + /obj/item/ammo_casing/energy/lasergun projectile_type = /obj/projectile/beam/laser e_cost = 830 select_name = "kill" -/obj/item/ammo_casing/energy/laser/smg //WS edit: fun +/obj/item/ammo_casing/energy/lasergun/eoehoma + projectile_type = /obj/projectile/beam/laser/eoehoma + fire_sound = 'sound/weapons/gun/laser/e-fire.ogg' + +/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" + delay = 0.2 SECONDS /obj/item/ammo_casing/energy/lasergun/old projectile_type = /obj/projectile/beam/laser @@ -50,7 +71,7 @@ projectile_type = /obj/projectile/beam/pulse e_cost = 2000 select_name = "DESTROY" - fire_sound = 'sound/weapons/pulse.ogg' + fire_sound = 'sound/weapons/gun/laser/heavy_laser.ogg' /obj/item/ammo_casing/energy/laser/bluetag projectile_type = /obj/projectile/beam/lasertag/bluetag @@ -151,4 +172,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/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index 692c87db2ad6..d64195150e0a 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -78,8 +78,16 @@ e_cost = 300 select_name = "shock" projectile_type = /obj/projectile/energy/tesla_cannon + delay = 1 /obj/item/ammo_casing/energy/shrink projectile_type = /obj/projectile/beam/shrink select_name = "shrink ray" e_cost = 2000 + +/obj/item/ammo_casing/energy/buster + projectile_type = /obj/projectile/energy/buster + select_name = "T4L1 buster replica" + e_cost = 100 //should have a lot of energy + fire_sound = 'sound/effects/empulse.ogg' + delay = 3 SECONDS diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm index 8879981b1e16..c47a88b38830 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -46,3 +46,4 @@ /obj/item/ammo_casing/energy/disabler/smg projectile_type = /obj/projectile/beam/disabler/weak/negative_ap e_cost = 330 + delay = 0.2 SECONDS 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..0c25c8a2282e 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -28,7 +28,7 @@ /obj/item/ammo_box/magazine/m10mm/rubber name = "pistol magazine (10mm rubber)" desc = "An 8-round handgun magazine for the stechkin pistol. These rubber rounds trade lethality for a heavy impact which can incapacitate targets. Performs even worse against armor." - icon_state = "9x19pR" + icon_state = "9x19p" ammo_type = /obj/item/ammo_casing/c10mm/rubber /obj/item/ammo_box/magazine/m45 @@ -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..786bf8e9dfb6 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() . = ..() @@ -117,3 +117,14 @@ /obj/item/ammo_box/magazine/swiss/update_icon_state() . = ..() icon_state = "swissmag-[!!ammo_count()]" + +/obj/item/ammo_box/magazine/e40 + name = "E-40 magazine (.229 Eoehoma caseless)" + icon_state = "e40_mag" + ammo_type = /obj/item/ammo_casing/caseless/c299 + caliber = ".299 caseless" + max_ammo = 30 + +/obj/item/ammo_box/magazine/e40/update_icon_state() + . = ..() + icon_state = "e40_mag-[!!ammo_count()]" 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..d6b9e05413a9 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1,7 +1,22 @@ -#define DUALWIELD_PENALTY_EXTRA_MULTIPLIER 1.4 +#define DUALWIELD_PENALTY_EXTRA_MULTIPLIER 1.6 #define FIRING_PIN_REMOVAL_DELAY 50 +#define MANUFACTURER_NONE null +#define MANUFACTURER_SHARPLITE "the Sharplite Defense logo" +#define MANUFACTURER_SHARPLITE_NEW "the Nanotrasen-Sharplite logo" +#define MANUFACTURER_HUNTERSPRIDE "the Hunter's Pride Arms and Ammunition logo" +#define MANUFACTURER_SOLARARMORIES "the Solarbundswaffenkammer emblem" +#define MANUFACTURER_SCARBOROUGH "the Scarborough Arms logo" +#define MANUFACTURER_EOEHOMA "the Eoehoma Firearms emblem" +#define MANUFACTURER_NANOTRASEN_OLD "an outdated Nanotrasen logo" +#define MANUFACTURER_NANOTRASEN "the Nanotrasen logo" +#define MANUFACTURER_BRAZIL "a green flag with a blue circle and a yellow diamond around it" +#define MANUFACTURER_INTEQ "an orange crest with the letters 'IRMG'" +#define MANUFACTURER_MINUTEMAN "the Lanchester City Firearms Plant logo" +#define MANUFACTURER_DONKCO "the Donk! Co. logo" +#define MANUFACTURER_PGF "the Etherbor Industries emblem" + /obj/item/gun name = "gun" desc = "It's a gun. It's pretty terrible, though." @@ -21,36 +36,38 @@ pickup_sound = 'sound/items/handling/gun_pickup.ogg' drop_sound = 'sound/items/handling/gun_drop.ogg' + /// The manufacturer of this weapon. For flavor mostly. If none, this will not show. + var/manufacturer = MANUFACTURER_NONE + var/fire_sound = 'sound/weapons/gun/pistol/shot.ogg' 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' + var/list/attachment_options = list() //This.. works for now.. gun refactor soon var/obj/item/firing_pin/pin = /obj/item/firing_pin //standard firing pin for most guns var/can_flashlight = FALSE //if a flashlight can be added or removed if it already has one. @@ -77,14 +94,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 +185,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 +223,13 @@ 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." + + if(manufacturer) + . += "It has [manufacturer] engraved on it." + + /obj/item/gun/equipped(mob/living/user, slot) . = ..() if(zoomed && user.get_active_held_item() != src) @@ -146,16 +242,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 +332,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 +346,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 +429,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 +442,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 +464,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,39 +521,51 @@ 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(.) return if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return - if((can_flashlight && gun_light) && (can_bayonet && bayonet)) //give them a choice instead of removing both - var/list/possible_items = list(gun_light, bayonet) - var/obj/item/item_to_remove = input(user, "Select an attachment to remove", "Attachment Removal") as null|obj in sortNames(possible_items) - if(!item_to_remove || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) - return - return remove_gun_attachment(user, I, item_to_remove) - - else if(gun_light && can_flashlight) //if it has a gun_light and can_flashlight is false, the flashlight is permanently attached. + attachment_options = list() + get_gun_attachments() + if(LAZYLEN(attachment_options) == 1) + remove_gun_attachments(user, I, attachment_options[1]) + else if (LAZYLEN(attachment_options)) + var/picked_option = show_radial_menu(user, src, attachment_options, radius = 38, require_near = TRUE) + remove_gun_attachments(user, I, picked_option) + +/obj/item/gun/proc/get_gun_attachments() + if(can_flashlight && gun_light) + attachment_options += list("Light" = image(icon = gun_light.icon, icon_state = gun_light.icon_state)) + if(can_bayonet && bayonet) + attachment_options += list("Knife" = image(icon = bayonet.icon, icon_state = bayonet.icon_state)) + +/obj/item/gun/proc/remove_gun_attachments(mob/living/user, obj/item/I, picked_option) + if(picked_option == "Light") return remove_gun_attachment(user, I, gun_light, "unscrewed") - - else if(bayonet && can_bayonet) //if it has a bayonet, and the bayonet can be removed + else if(picked_option == "Knife") return remove_gun_attachment(user, I, bayonet, "unfix") - /*WS Edit - Fixes Pin Removal - else if(pin && user.is_holding(src)) - user.visible_message("[user] attempts to remove [pin] from [src] with [I].", - "You attempt to remove [pin] from [src]. (It will take [DisplayTimeText(FIRING_PIN_REMOVAL_DELAY)].)", null, 3) - if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, volume = 50)) - if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay - return - user.visible_message("[pin] is pried out of [src] by [user], destroying the pin in the process.", - "You pry [pin] out with [I], destroying the pin in the process.", null, 3) - QDEL_NULL(pin) - return TRUE - WS End */ - - /obj/item/gun/welder_act(mob/living/user, obj/item/I) . = ..() if(.) @@ -550,7 +674,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 +683,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 +724,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 +776,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 +921,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..66f6699321c2 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,9 @@ slot_flags = ITEM_SLOT_BACK mag_type = /obj/item/ammo_box/magazine/swiss actions_types = list(/datum/action/item_action/toggle_firemode) + manufacturer = MANUFACTURER_SOLARARMORIES + spread = 8 + spread_unwielded = 15 /obj/item/gun/ballistic/automatic/assault/swiss_cheese/ComponentInitialize() . = ..() @@ -157,7 +188,127 @@ 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() + +#define E40_BALLISTIC_MODE 1 +#define E40_LASER_MODE 2 + +/obj/item/gun/ballistic/automatic/assault/e40 + name = "\improper E-40 Hybrid Rifle" + desc = "A Hybrid Assault Rifle, best known for being having a dual ballistic and laser system. Chambered in .229 Eoehoma caseless, and uses energy for lasers." + icon = 'icons/obj/guns/48x32guns.dmi' + icon_state = "e40" + item_state = "e40" + mag_type = /obj/item/ammo_box/magazine/e40 + can_suppress = FALSE + actions_types = list(/datum/action/item_action/toggle_firemode) + var/obj/item/gun/energy/laser/e40_laser_secondary/secondary + + weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + + mag_display = TRUE + empty_indicator = TRUE + fire_sound = 'sound/weapons/gun/laser/e40_bal.ogg' + manufacturer = MANUFACTURER_EOEHOMA + +/obj/item/gun/ballistic/automatic/assault/e40/Initialize() + . = ..() + secondary = new /obj/item/gun/energy/laser/e40_laser_secondary(src) + AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) + RegisterSignal(secondary, COMSIG_ATOM_UPDATE_ICON, PROC_REF(secondary_update_icon)) + SEND_SIGNAL(secondary, COMSIG_GUN_DISABLE_AUTOFIRE) + update_appearance() + +/obj/item/gun/ballistic/automatic/assault/e40/do_autofire(datum/source, atom/target, mob/living/shooter, params) + if(select == E40_LASER_MODE) + secondary.do_autofire(source, target, shooter, params) + else + return ..() + +/obj/item/gun/ballistic/automatic/assault/e40/do_autofire_shot(datum/source, atom/target, mob/living/shooter, params) + if(select == E40_LASER_MODE) + secondary.do_autofire_shot(source, target, shooter, params) + else + return ..() + +/obj/item/gun/ballistic/automatic/assault/e40/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread) + if(select == E40_LASER_MODE) + secondary.process_fire(target, user, message, params, zone_override, bonus_spread) + else + return ..() + +/obj/item/gun/ballistic/automatic/assault/e40/can_shoot() + if(select == E40_LASER_MODE) + return secondary.can_shoot() + else + return ..() + +/obj/item/gun/ballistic/automatic/assault/e40/afterattack(atom/target, mob/living/user, flag, params) + if(select == E40_LASER_MODE) + secondary.afterattack(target, user, flag, params) + else + return ..() + +/obj/item/gun/ballistic/automatic/assault/e40/attackby(obj/item/attack_obj, mob/user, params) + if(istype(attack_obj, /obj/item/stock_parts/cell/gun) || istype(attack_obj, /obj/item/screwdriver)) + secondary.attack_self() + secondary.attackby(attack_obj, user, params) + else + ..() + +/obj/item/gun/ballistic/automatic/assault/e40/can_shoot() + if(select == E40_LASER_MODE) + return secondary.can_shoot() + return ..() + +/obj/item/gun/ballistic/automatic/assault/e40/proc/secondary_update_icon() + update_icon() + +/obj/item/gun/ballistic/automatic/assault/e40/update_overlays() + . = ..() + //handle laser gunn overlays + if(!secondary) + return + var/ratio = secondary.get_charge_ratio() + if(ratio == 0) + . += "[icon_state]_chargeempty" + else + . += "[icon_state]_charge[ratio]" + if(secondary.cell) + . += "[icon_state]_cell" + + +/obj/item/gun/ballistic/automatic/assault/e40/burst_select() + var/mob/living/carbon/human/user = usr + switch(select) + if(NONE) + select = E40_BALLISTIC_MODE + to_chat(user, "You switch to full automatic ballistic.") + if(E40_BALLISTIC_MODE) + select = E40_LASER_MODE + to_chat(user, "You switch to full auto laser.") + SEND_SIGNAL(src, COMSIG_GUN_DISABLE_AUTOFIRE) + SEND_SIGNAL(secondary, COMSIG_GUN_ENABLE_AUTOFIRE) + if(E40_LASER_MODE) + select = E40_BALLISTIC_MODE + to_chat(user, "You switch to full automatic ballistic.") + SEND_SIGNAL(src, COMSIG_GUN_ENABLE_AUTOFIRE) + SEND_SIGNAL(secondary, COMSIG_GUN_DISABLE_AUTOFIRE) + playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + update_icon() + return + +//laser + +/obj/item/gun/energy/laser/e40_laser_secondary + name = "secondary e40 laser gun" + desc = "The laser component of a E-40 Hybrid Rifle. You probably shouldn't see this." + fire_sound = 'sound/weapons/gun/laser/e40_las.ogg' + w_class = WEIGHT_CLASS_NORMAL + ammo_type = list(/obj/item/ammo_casing/energy/laser/assault) + fire_delay = 2 diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index b159376b547b..841e36927cb5 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 @@ -70,6 +77,14 @@ slot_flags = ITEM_SLOT_BACK actions_types = list() mag_display = TRUE + manufacturer = MANUFACTURER_SCARBOROUGH + + 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" @@ -117,7 +132,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 @@ -127,6 +141,10 @@ fire_sound = 'sound/weapons/gun/rifle/shot_alt2.ogg' burst_size = 0 actions_types = list() + manufacturer = MANUFACTURER_SCARBOROUGH + + wield_slowdown = 2 + spread = -4 /obj/item/gun/ballistic/automatic/gal name = "\improper CM-GAL-S" @@ -142,6 +160,10 @@ fire_sound = 'sound/weapons/gun/rifle/gal.ogg' burst_size = 0 actions_types = list() + manufacturer = MANUFACTURER_MINUTEMAN + + wield_slowdown = 2 + spread = -4 /obj/item/gun/ballistic/automatic/gal/inteq name = "\improper SsG-04" diff --git a/code/modules/projectiles/guns/ballistic/gauss.dm b/code/modules/projectiles/guns/ballistic/gauss.dm index 993c616f885f..b8b8e36e04b7 100644 --- a/code/modules/projectiles/guns/ballistic/gauss.dm +++ b/code/modules/projectiles/guns/ballistic/gauss.dm @@ -17,6 +17,14 @@ w_class = WEIGHT_CLASS_BULKY charge_sections = 4 ammo_x_offset = 2 + manufacturer = MANUFACTURER_NANOTRASEN + + 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" @@ -32,6 +40,12 @@ fire_delay = 0 //pistol mag_display = FALSE empty_indicator = FALSE + manufacturer = MANUFACTURER_SOLARARMORIES + recoil = 1 + recoil_unwielded = 2 + spread = 3 + spread_unwielded = 6 + /obj/item/gun/ballistic/automatic/powered/gauss/claris name = "Claris" @@ -49,6 +63,7 @@ casing_ejector = FALSE mag_display = FALSE empty_indicator = FALSE + manufacturer = MANUFACTURER_SOLARARMORIES /obj/item/gun/ballistic/automatic/powered/gauss/gar name = "Solar 'GAR' Assault Rifle" @@ -64,6 +79,10 @@ fire_delay = 2 actions_types = list() empty_indicator = FALSE + manufacturer = MANUFACTURER_SOLARARMORIES + + wield_delay = 0.7 SECONDS + fire_delay = 1 /obj/item/gun/ballistic/automatic/powered/gauss/gar/ComponentInitialize() . = ..() diff --git a/code/modules/projectiles/guns/ballistic/hmg.dm b/code/modules/projectiles/guns/ballistic/hmg.dm index dfe8a52cde19..3209513efc20 100644 --- a/code/modules/projectiles/guns/ballistic/hmg.dm +++ b/code/modules/projectiles/guns/ballistic/hmg.dm @@ -6,12 +6,19 @@ 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 // /obj/item/gun/ballistic/automatic/hmg/l6_saw name = "\improper L6 SAW" - desc = "An HMG designated 'L6 SAW'. Has 'Aussec Armoury - 490 FS' engraved on the receiver below the designation. Chambered in 7.12x82mm." + desc = "A heavy machine gun, designated 'L6 SAW'. Chambered in 7.12x82mm." icon_state = "l6" item_state = "l6closedmag" base_icon_state = "l6" @@ -25,11 +32,12 @@ fire_sound = 'sound/weapons/gun/l6/shot.ogg' rack_sound = 'sound/weapons/gun/l6/l6_rack.ogg' suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' + manufacturer = MANUFACTURER_SCARBOROUGH var/cover_open = FALSE /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) . = ..() @@ -83,7 +91,8 @@ can_bayonet = FALSE mag_display = TRUE w_class = WEIGHT_CLASS_BULKY + manufacturer = MANUFACTURER_SOLARARMORIES /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..c7d73c5459bc 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 @@ -62,6 +63,7 @@ cartridge_wording = "rocket" empty_indicator = TRUE tac_reloads = FALSE + manufacturer = MANUFACTURER_SCARBOROUGH /obj/item/gun/ballistic/rocketlauncher/unrestricted pin = /obj/item/firing_pin @@ -79,3 +81,4 @@ icon = 'icons/obj/guns/48x32guns.dmi' icon_state = "panzerfaust" item_state = "panzerfaust" + manufacturer = MANUFACTURER_SOLARARMORIES diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index d03b3992b741..97974ff341fb 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' @@ -25,6 +25,14 @@ weapon_weight = WEAPON_LIGHT pickup_sound = 'sound/items/handling/gun_pickup.ogg' fire_delay = 1 + manufacturer = MANUFACTURER_SCARBOROUGH + + 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 +43,22 @@ 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' + manufacturer = MANUFACTURER_HUNTERSPRIDE + 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 +71,20 @@ 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' + manufacturer = MANUFACTURER_NONE + 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." @@ -87,6 +111,7 @@ name = "flat gun" desc = "A 2 dimensional gun.. what?" icon_state = "flatgun" + manufacturer = MANUFACTURER_NONE /obj/item/gun/ballistic/automatic/pistol/stickman/pickup(mob/living/user) SHOULD_CALL_PARENT(0) @@ -106,6 +131,12 @@ w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/co9mm can_suppress = FALSE + manufacturer = MANUFACTURER_NANOTRASEN + 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 @@ -115,6 +146,7 @@ desc = "A handgun seized from Nanotrasen armories by deserting troopers and modified to IRMG's standards. A yellow IRMG shield is set into the grips. Chambered in 9mm." icon_state = "commander-inteq" item_state = "commander-inteq" + manufacturer = MANUFACTURER_INTEQ /obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag spawnwithmagazine = FALSE @@ -128,6 +160,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 +213,11 @@ w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/pistol556mm fire_sound = 'sound/weapons/gun/pistol/pistolec.ogg' + manufacturer = MANUFACTURER_SOLARARMORIES + 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 +230,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" @@ -199,6 +244,10 @@ custom_materials = list(/datum/material/plastic=2000) can_suppress = FALSE var/random_icon = TRUE + manufacturer = MANUFACTURER_NONE + + has_safety = FALSE //thing barely costs anything, why would it have a safety? + safety = FALSE /obj/item/gun/ballistic/automatic/pistol/disposable/Initialize() . = ..() @@ -265,3 +314,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..454a790728d2 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 + manufacturer = MANUFACTURER_SCARBOROUGH + 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() @@ -74,9 +117,9 @@ . += "It can be spun with alt+click" /obj/item/gun/ballistic/revolver/detective - name = "\improper Colt Detective Special" + name = "\improper Hunter's Pride 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 @@ -90,6 +133,9 @@ "The Peacemaker" = "detective_peacemaker", "Black Panther" = "detective_panther" ) + manufacturer = MANUFACTURER_HUNTERSPRIDE + + 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)) @@ -140,6 +186,10 @@ name = "\improper Unica 6 auto-revolver" desc = "A high-powered revolver with a unique auto-reloading system. Uses .357 ammo." icon_state = "mateba" + manufacturer = MANUFACTURER_NONE + semi_auto = TRUE + spread = 0 + spread_unwielded = 7 /obj/item/gun/ballistic/revolver/golden name = "\improper Golden revolver" @@ -148,12 +198,17 @@ fire_sound = 'sound/weapons/resonator_blast.ogg' recoil = 8 pin = /obj/item/firing_pin + manufacturer = MANUFACTURER_NONE /obj/item/gun/ballistic/revolver/nagant name = "\improper Nagant revolver" 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 + manufacturer = MANUFACTURER_NONE + spread_unwielded = 12 + recoil = 0 + recoil_unwielded = 0 mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 @@ -163,6 +218,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. @@ -173,6 +234,7 @@ icon_state = "russianrevolver" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rus357 var/spun = FALSE + manufacturer = MANUFACTURER_NONE /obj/item/gun/ballistic/revolver/russian/do_spin() . = ..() @@ -268,8 +330,9 @@ user.Paralyze(80) /obj/item/gun/ballistic/revolver/srm - name = "SRM Standard Issue .357 Revolver" + name = "SRM Standard Issue .357 Revolver" //should have used the pepperbox... desc = "A sturdy, powerful, and reliable revolver utilized by the Saint-Roumain Militia." + manufacturer = MANUFACTURER_HUNTERSPRIDE /obj/item/gun/ballistic/revolver/pepperbox name = "\improper pepperbox pistol" @@ -277,4 +340,22 @@ icon_state = "pepperbox" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/pepperbox spread = 20 - fire_delay = 4 + manufacturer = MANUFACTURER_HUNTERSPRIDE + 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..6506edc4bb1d 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" : ""]" @@ -66,6 +73,7 @@ knife_x_offset = 27 knife_y_offset = 13 can_be_sawn_off = TRUE + manufacturer = MANUFACTURER_HUNTERSPRIDE /obj/item/gun/ballistic/rifle/boltaction/sawoff(mob/user) . = ..() @@ -89,6 +97,18 @@ fire_sound = 'sound/weapons/gun/rifle/ssg669c.ogg' can_be_sawn_off = FALSE + zoomable = TRUE + zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you. + zoom_out_amt = 5 + + manufacturer = MANUFACTURER_SOLARARMORIES + 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." @@ -97,12 +117,15 @@ item_state = "roma" can_be_sawn_off = FALSE + manufacturer = MANUFACTURER_HUNTERSPRIDE + /obj/item/gun/ballistic/rifle/boltaction/enchanted name = "enchanted bolt-action rifle" desc = "Careful not to lose your head." var/guns_left = 30 mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted can_be_sawn_off = FALSE + manufacturer = MANUFACTURER_NONE /obj/item/gun/ballistic/rifle/boltaction/enchanted/arcane_barrage name = "arcane barrage" @@ -158,3 +181,4 @@ w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/internal/boltaction/polymer can_be_sawn_off = FALSE + manufacturer = MANUFACTURER_NONE diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index e333122e2e0a..de8b923fb967 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -26,6 +26,15 @@ pickup_sound = 'sound/items/handling/shotgun_pickup.ogg' fire_delay = 7 pb_knockback = 2 + manufacturer = MANUFACTURER_HUNTERSPRIDE + + 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 @@ -41,13 +50,37 @@ /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 + manufacturer = MANUFACTURER_NANOTRASEN /obj/item/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user) ..() @@ -145,6 +178,14 @@ internal_magazine = FALSE tac_reloads = TRUE pickup_sound = 'sound/items/handling/rifle_pickup.ogg' + manufacturer = MANUFACTURER_SCARBOROUGH + + 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 @@ -156,6 +197,7 @@ item_state = "bulldog-inteq" mag_type = /obj/item/ammo_box/magazine/m12g pin = /obj/item/firing_pin + manufacturer = MANUFACTURER_INTEQ /obj/item/gun/ballistic/shotgun/bulldog/minutemen name = "\improper CM-15" @@ -168,6 +210,7 @@ empty_alarm = FALSE empty_indicator = FALSE special_mags = FALSE + manufacturer = MANUFACTURER_MINUTEMAN ///////////////////////////// // DOUBLE BARRELED SHOTGUN // @@ -198,6 +241,7 @@ bolt_type = BOLT_TYPE_NO_BOLT can_be_sawn_off = TRUE pb_knockback = 3 // it's a super shotgun! + manufacturer = MANUFACTURER_HUNTERSPRIDE /obj/item/gun/ballistic/shotgun/doublebarrel/AltClick(mob/user) . = ..() @@ -208,6 +252,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 +423,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 @@ -382,6 +434,7 @@ fire_sound_volume = 50 rack_sound_volume = 50 can_be_sawn_off = FALSE + manufacturer = MANUFACTURER_BRAZIL /obj/item/gun/ballistic/shotgun/doublebarrel/brazil/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) if(prob(0 + (magazine.ammo_count() * 10))) @@ -420,10 +473,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." @@ -455,6 +519,7 @@ can_be_sawn_off = FALSE fire_sound_volume = 80 rack_sound_volume = 50 + manufacturer = MANUFACTURER_HUNTERSPRIDE //Break-Action Rifle /obj/item/gun/ballistic/shotgun/contender @@ -469,7 +534,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 +548,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..7efd0a579925 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" @@ -11,10 +21,11 @@ pin = null bolt_type = BOLT_TYPE_LOCKING mag_display = TRUE + manufacturer = MANUFACTURER_NANOTRASEN_OLD /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 @@ -32,10 +43,11 @@ mag_display = TRUE mag_display_ammo = TRUE empty_indicator = TRUE + manufacturer = MANUFACTURER_SCARBOROUGH /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 +68,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 @@ -63,10 +76,11 @@ flight_y_offset = 13 can_suppress = TRUE mag_display = TRUE + manufacturer = MANUFACTURER_INTEQ /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 +98,52 @@ mag_display = TRUE mag_display_ammo = TRUE empty_indicator = TRUE + manufacturer = MANUFACTURER_NANOTRASEN_OLD + 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" @@ -132,6 +160,11 @@ mag_display = TRUE empty_indicator = TRUE fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg' + manufacturer = MANUFACTURER_SCARBOROUGH + + spread = 1 + spread_unwielded = 8 + wield_slowdown = 0.4 /obj/item/gun/ballistic/automatic/smg/m90/Initialize() . = ..() @@ -186,7 +219,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 +236,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 +254,15 @@ 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' + manufacturer = MANUFACTURER_MINUTEMAN /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/cm5/no_mag + spawnwithmagazine = FALSE /obj/item/gun/ballistic/automatic/smg/aks74u name = "\improper AKS-74U" diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 269baa7c83bf..4ce2819a902e 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -12,6 +12,9 @@ clumsy_check = 0 item_flags = NONE casing_ejector = FALSE + manufacturer = MANUFACTURER_NANOTRASEN + recoil = -10 //its a toy... + recoil_unwielded = -10 /obj/item/gun/ballistic/automatic/toy/update_overlays() . = ..() @@ -32,6 +35,8 @@ burst_size = 1 fire_delay = 0 actions_types = list() + recoil = -10 //its a toy... + recoil_unwielded = -10 /obj/item/gun/ballistic/automatic/toy/pistol/riot mag_type = /obj/item/ammo_box/magazine/toy/pistol/riot @@ -58,6 +63,8 @@ casing_ejector = FALSE can_suppress = FALSE pb_knockback = 0 + recoil = -10 //its a toy... + recoil_unwielded = -10 /obj/item/gun/ballistic/shotgun/toy/update_overlays() . = ..() @@ -81,6 +88,9 @@ fire_sound = 'sound/items/syringeproj.ogg' slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL + manufacturer = MANUFACTURER_DONKCO + recoil = -10 //its a toy... + recoil_unwielded = -10 /obj/item/gun/ballistic/automatic/smg/c20r/toy //This is the syndicate variant with syndicate firing pin and riot darts. name = "donksoft SMG" @@ -91,6 +101,9 @@ fire_sound = 'sound/items/syringeproj.ogg' casing_ejector = FALSE clumsy_check = FALSE + manufacturer = MANUFACTURER_DONKCO + recoil = -10 //its a toy... + recoil_unwielded = -10 /obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted //Use this for actual toys pin = /obj/item/firing_pin @@ -112,6 +125,9 @@ mag_type = /obj/item/ammo_box/magazine/toy/m762/riot casing_ejector = FALSE clumsy_check = FALSE + manufacturer = MANUFACTURER_DONKCO + recoil = -10 //its a toy... + recoil_unwielded = -10 /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted //Use this for actual toys pin = /obj/item/firing_pin diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index b186569afad4..229d49c4a8c6 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() @@ -122,29 +128,33 @@ to_chat(user, "You cannot seem to get \the [src] out of your hands!") return FALSE -/obj/item/gun/energy/proc/eject_cell(mob/user, obj/item/stock_parts/cell/gun/tac_load = null) - playsound(src, load_sound, sound_volume, load_sound_vary) - cell.forceMove(drop_location()) - var/obj/item/stock_parts/cell/gun/old_cell = cell - /*if(insert_cell(user, tac_load)) - to_chat(user, "You perform a tactical reload on \the [src].") - else - to_chat(user, "You dropped the old cell, but the new one doesn't fit. How embarassing.")*/ - cell = null - user.put_in_hands(old_cell) - old_cell.update_appearance() - to_chat(user, "You pull the cell out of \the [src].") - update_appearance() +/obj/item/gun/energy/proc/eject_cell(mob/user, obj/item/I) + to_chat(user, "You begin unscrewing and pulling out the cell...") + if(I.use_tool(src, user, unscrewing_time, volume=100)) + to_chat(user, "You remove the power cell.") + playsound(src, load_sound, sound_volume, load_sound_vary) + cell.forceMove(drop_location()) + var/obj/item/stock_parts/cell/gun/old_cell = cell + cell = null + user.put_in_hands(old_cell) + old_cell.update_appearance() + to_chat(user, "You pull the cell out of \the [src].") + update_appearance() -/obj/item/gun/energy/screwdriver_act(mob/living/user, obj/item/I) - if(cell && !internal_cell && !bayonet && (!gun_light || !can_flashlight)) - to_chat(user, "You begin unscrewing and pulling out the cell...") - if(I.use_tool(src, user, unscrewing_time, volume=100)) - to_chat(user, "You remove the power cell.") - eject_cell(user) - return ..() +/obj/item/gun/energy/get_gun_attachments() + if(cell && !internal_cell) + attachment_options += list("Cell" = image(icon = cell.icon, icon_state = cell.icon_state)) + ..() -/obj/item/gun/energy/can_shoot() +/obj/item/gun/energy/remove_gun_attachments(mob/living/user, obj/item/I, picked_option) + if(picked_option == "Cell") + eject_cell(user, I) + return TRUE + ..() + +/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 +206,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 +228,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 +259,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 +284,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/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 1e4af286d44f..223cdc09e157 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -6,10 +6,11 @@ ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) modifystate = 1 can_flashlight = TRUE - ammo_x_offset = 3 + ammo_x_offset = 2 flight_x_offset = 15 flight_y_offset = 10 dual_wield_spread = 60 + manufacturer = MANUFACTURER_SHARPLITE_NEW /obj/item/gun/energy/e_gun/mindshield pin = /obj/item/firing_pin/implant/mindshield @@ -34,19 +35,35 @@ set_gun_light(new /obj/item/flashlight/seclite(src)) return ..() -/obj/item/gun/energy/e_gun/stun - name = "tactical energy gun" - desc = "Military issue energy gun, is able to fire stun rounds." +/obj/item/gun/energy/e_gun/hades + name = "SL AL-655 'Hades' energy rifle" + desc = "The standard issue rifle of Nanotrasen's Security Forces. Most have been put in long term storage following the ICW, and usually aren't issued to low ranking security divisions." + icon = 'icons/obj/guns/48x32guns.dmi' icon_state = "energytac" ammo_x_offset = 2 - ammo_type = list(/obj/item/ammo_casing/energy/electrode/spec, /obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) + charge_sections = 5 + ammo_type = list(/obj/item/ammo_casing/energy/laser/assault, /obj/item/ammo_casing/energy/disabler) + cell_type = /obj/item/stock_parts/cell/gun/upgraded + + weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + + wield_delay = 0.7 SECONDS + wield_slowdown = 0.6 + spread_unwielded = 20 + +/obj/item/gun/energy/e_gun/hades/Initialize() + . = ..() + AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) /obj/item/gun/energy/e_gun/old name = "prototype energy gun" - desc = "NT-P:01 Prototype Energy Gun. Early stage development of a unique laser rifle that has multifaceted energy lens allowing the gun to alter the form of projectile it fires on command." + desc = "NT-P:01 Prototype Energy Gun. Early stage development of a unique laser rifle that has a multifaceted energy lens, allowing the gun to alter the form of projectile it fires on command. The project was a dud, and Nanotrasen later acquired Sharplite to suit its laser weapon needs." icon_state = "protolaser" ammo_x_offset = 2 ammo_type = list(/obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/electrode/old) + manufacturer = MANUFACTURER_NANOTRASEN_OLD /obj/item/gun/energy/e_gun/mini/practice_phaser name = "practice phaser" @@ -63,18 +80,21 @@ ammo_type = list(/obj/item/ammo_casing/energy/disabler/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/ion/hos, /obj/item/ammo_casing/energy/electrode/hos) shaded_charge = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + manufacturer = MANUFACTURER_SHARPLITE_NEW /obj/item/gun/energy/e_gun/hos/brazil name = "modified antique laser gun" desc = "It's somehow modified to have more firemodes." icon_state = "capgun_brazil_hos" item_state = "hoslaser" + manufacturer = MANUFACTURER_SHARPLITE /obj/item/gun/energy/e_gun/hos/brazil/true - desc = "By using a original antique laser gun with a intact nuclear power cell, it is truly one of the finest weapons in this area of space." + desc = "This genuine antique laser gun, modified with an experimental suite of alternative firing modes based on the X-01 MultiPhase Energy Gun, is now truly one of the finest weapons in the frontier." icon_state = "capgun_hos" item_state = "hoslaser" selfcharge = 1 + manufacturer = MANUFACTURER_SHARPLITE /obj/item/gun/energy/e_gun/dragnet name = "\improper DRAGnet" @@ -120,6 +140,7 @@ var/reactor_overloaded var/fail_tick = 0 var/fail_chance = 0 + manufacturer = MANUFACTURER_NONE /obj/item/gun/energy/e_gun/nuclear/process() if(fail_tick > 0) @@ -194,9 +215,13 @@ charge_sections = 3 weapon_weight = WEAPON_LIGHT +/obj/item/gun/energy/e_gun/smg/Initialize() + . = ..() + AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) + /obj/item/gun/energy/e_gun/iot name = "\improper E-SG 500 Second Edition" - desc = "A improved version of the E-SG 255. It now includes two firing modes, disable and kill, while still keeping that sweed integrated computer. Please note that the screen is right next to the switch mode button." + desc = "A improved version of the E-SG 255. It now includes two firing modes, disable and kill, while still keeping that sweet integrated computer. Please note that the screen is right next to the switch mode button." lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi' righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi' inhand_x_dimension = 64 @@ -208,3 +233,17 @@ ammo_type = list(/obj/item/ammo_casing/energy/disabler/scatter/ultima, /obj/item/ammo_casing/energy/laser/ultima) var/obj/item/modular_computer/integratedNTOS var/NTOS_type = /obj/item/modular_computer/internal + +/obj/item/gun/energy/e_gun/e11 + name = "E-11 hybrid energy rifle" + desc = "A hybrid energy gun fondly remembered as one of the worst weapons ever made. It hurts, but that's only if it manages to hit its target." + icon_state = "e11" + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/eoehoma) + can_flashlight = TRUE + ammo_x_offset = 0 + flight_x_offset = 20 + flight_y_offset = 9 + spread = 80 + dual_wield_spread = 140 + shaded_charge = TRUE + manufacturer = MANUFACTURER_EOEHOMA diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 7928094cab13..75f72dd9e595 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 @@ -45,11 +49,17 @@ /obj/item/gun/energy/kinetic_accelerator/crowbar_act(mob/living/user, obj/item/I) . = TRUE - if(modkits.len) - to_chat(user, "You pry the modifications out.") - I.play_tool_sound(src, 100) + if(LAZYLEN(modkits)) + var/list/choose_options = list() for(var/obj/item/borg/upgrade/modkit/M in modkits) - M.uninstall(src) + choose_options += list(M.name = image(icon = M.icon, icon_state = M.icon_state)) + var/picked_option = show_radial_menu(user, src, choose_options, radius = 38, require_near = TRUE) + if(picked_option) + to_chat(user, "You remove [picked_option].") + I.play_tool_sound(src, 100) + for(var/obj/item/borg/upgrade/modkit/M in modkits) + if(M.name == picked_option) + M.uninstall(src) else to_chat(user, "There are no modifications currently installed.") @@ -113,7 +123,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 +154,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 @@ -521,13 +531,13 @@ /obj/item/borg/upgrade/modkit/bounty/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) if(isliving(target)) var/mob/living/L = target - var/list/existing_marks = L.has_status_effect_list(STATUS_EFFECT_SYPHONMARK) + var/list/existing_marks = L.has_status_effect_list(/datum/status_effect/syphon_mark) for(var/i in existing_marks) var/datum/status_effect/syphon_mark/SM = i if(SM.reward_target == src) //we want to allow multiple people with bounty modkits to use them, but we need to replace our own marks so we don't multi-reward SM.reward_target = null qdel(SM) - L.apply_status_effect(STATUS_EFFECT_SYPHONMARK, src) + L.apply_status_effect(/datum/status_effect/syphon_mark, src) /obj/item/borg/upgrade/modkit/bounty/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) if(isliving(target)) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 4551014cafea..0c02e2ff90e8 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -1,5 +1,5 @@ /obj/item/gun/energy/laser - name = "laser gun" + name = "SL L-204 laser gun" desc = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal." icon_state = "laser" item_state = "laser" @@ -7,44 +7,43 @@ custom_materials = list(/datum/material/iron=2000) ammo_type = list(/obj/item/ammo_casing/energy/lasergun) ammo_x_offset = 1 - shaded_charge = 1 + shaded_charge = TRUE supports_variations = VOX_VARIATION + manufacturer = MANUFACTURER_SHARPLITE_NEW + + 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." + desc = "A modified version of the L-204 laser gun, this one fires less concentrated energy bolts designed for target practice." ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) - clumsy_check = 0 + clumsy_check = TRUE item_flags = NONE /obj/item/gun/energy/laser/retro - name ="retro laser gun" - icon_state = "retro" - desc = "An older model of the basic lasergun, no longer used by Nanotrasen's private security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." - ammo_x_offset = 3 - -/obj/item/gun/energy/laser/retro/old - name ="laser gun" + name ="SL L-104 retro laser gun" icon_state = "retro" - desc = "First generation lasergun, developed by Nanotrasen. Suffers from ammo issues but its unique ability to recharge its ammo without the need of a magazine helps compensate. You really hope someone has developed a better lasergun while you were in cryo." - ammo_type = list(/obj/item/ammo_casing/energy/lasergun/old) + desc = "An antiquated model of the basic lasergun, no longer used or sold by Sharplite. Nevertheless, the sheer popularity of this model makes it a somewhat common sight to this day." ammo_x_offset = 3 + manufacturer = MANUFACTURER_SHARPLITE /obj/item/gun/energy/laser/captain name = "antique laser gun" icon_state = "caplaser" item_state = null - desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding." + desc = "This is the SL X-00, an antique laser gun, out of production for decades and well beyond anyone's capacity to recreate. All craftsmanship is of the highest quality. It is decorated with ashdrake leather and chrome. The gun menaces with spikes of energy. On the item is an image of a space station. The station is exploding." force = 10 ammo_x_offset = 3 - selfcharge = 1 + selfcharge = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + manufacturer = MANUFACTURER_SHARPLITE /obj/item/gun/energy/laser/captain/brazil icon_state = "capgun_brazil" item_state = "caplaser" - desc = "This is an antique laser gun. It seems all the high quality materials it was once made of are now scratched up and torn. The nuclear power cell has been removed, and will no longer automaticly recharge." - selfcharge = 0 + desc = "This is the SL X-00, an antique laser gun, out of production for decades and well beyond anyone's capacity to recreate. It seems all the high quality materials it was once made of are now scratched up and torn. The nuclear power cell has been removed, and the gun will no longer automatically recharge." + selfcharge = FALSE /obj/item/gun/energy/laser/captain/scattershot name = "scatter shot laser rifle" @@ -58,6 +57,7 @@ can_charge = FALSE desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?" use_cyborg_cell = TRUE + manufacturer = MANUFACTURER_NONE /obj/item/gun/energy/laser/cyborg/emp_act() return @@ -66,6 +66,7 @@ name = "scatter laser gun" desc = "A laser gun equipped with a refraction kit that spreads bolts." ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser) + manufacturer = MANUFACTURER_NONE /obj/item/gun/energy/laser/scatter/shotty name = "energy shotgun" @@ -76,6 +77,7 @@ shaded_charge = 0 pin = /obj/item/firing_pin/implant/mindshield ammo_type = list(/obj/item/ammo_casing/energy/disabler/scatter, /obj/item/ammo_casing/energy/electrode) + manufacturer = MANUFACTURER_NONE ///Laser Cannon @@ -93,6 +95,7 @@ ammo_type = list(/obj/item/ammo_casing/energy/laser/accelerator) pin = null ammo_x_offset = 3 + manufacturer = MANUFACTURER_SHARPLITE /obj/item/gun/energy/lasercannon/unrestricted pin = /obj/item/firing_pin @@ -135,6 +138,7 @@ pin = /obj/item/firing_pin/tag/blue ammo_x_offset = 2 selfcharge = TRUE + manufacturer = MANUFACTURER_NONE /obj/item/gun/energy/laser/bluetag/hitscan ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag/hitscan) @@ -149,12 +153,13 @@ pin = /obj/item/firing_pin/tag/red ammo_x_offset = 2 selfcharge = TRUE + manufacturer = MANUFACTURER_NONE /obj/item/gun/energy/laser/redtag/hitscan ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag/hitscan) /obj/item/gun/energy/laser/iot - name = "\improper E-SG 255 Ultimate" + name = "\improper SL E-255 Ultimate" desc = "An energy shotgun with an integrated computer system for surveillance and statistics tracking." lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi' righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi' @@ -166,6 +171,7 @@ ammo_type = list(/obj/item/ammo_casing/energy/disabler/scatter/ultima) var/obj/item/modular_computer/integratedNTOS var/NTOS_type = /obj/item/modular_computer/internal + manufacturer = MANUFACTURER_SHARPLITE_NEW /obj/item/gun/energy/laser/iot/Initialize() . = ..() @@ -195,9 +201,43 @@ w_class = WEIGHT_CLASS_NORMAL cell_type = /obj/item/stock_parts/cell/gun/mini ammo_type = list(/obj/item/ammo_casing/energy/lasergun/hitscan) + manufacturer = MANUFACTURER_SHARPLITE_NEW /obj/item/gun/energy/laser/hitscanpistol/examine_more(mob/user) if(in_range(src, user) || isobserver(user)) - . = list("You examine [src] closer. Under the grip is a small inscription: \"NT CN SVALINN 2502\".") + . = list("You examine [src] closer. Under the grip is a small inscription: \"NT CN SVALINN 462\".") else . = list("You try to examine [src] closer, but you're too far away.") + +/obj/item/gun/energy/laser/e10 + name = "E-10 laser pistol" + desc = "A very old laser weapon. Despite the extreme age of some of these weapons, they are sometimes preferred to newer, mass-produced Nanotrasen laser weapons." + icon_state = "e10" + w_class = WEIGHT_CLASS_SMALL + ammo_type = list(/obj/item/ammo_casing/energy/lasergun/eoehoma) + manufacturer = MANUFACTURER_EOEHOMA + +/obj/item/gun/energy/laser/e50 + name = "E-50 energy emitter" + desc = "A heavy and extremely powerful laser. Sets targets on fire and kicks ass, but it uses a massive amount of energy per shot and is generally awkward to handle." + + icon = 'icons/obj/guns/48x32guns.dmi' + icon_state = "e50" + + big_gun = TRUE + cell_type = /obj/item/stock_parts/cell/gun/large + ammo_type = list(/obj/item/ammo_casing/energy/laser/eoehoma/e50) + weapon_weight = WEAPON_HEAVY + manufacturer = MANUFACTURER_EOEHOMA + + wield_delay = 0.7 SECONDS + wield_slowdown = 0.6 + spread_unwielded = 20 + + shaded_charge = FALSE + ammo_x_offset = 4 + charge_sections = 2 + w_class = WEIGHT_CLASS_BULKY + slot_flags = 0 + + 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..f5efacbf96c3 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -1,6 +1,7 @@ /obj/item/gun/energy/pulse name = "pulse rifle" - desc = "A heavy-duty, multifaceted energy rifle with three modes. Preferred by front-line combat personnel." + desc = "A top-of-the-line, heavy-duty, multifaceted energy rifle with three firing modes. The gold standard for Nanotrasen's heavier security specialists." + icon = 'icons/obj/guns/48x32guns.dmi' icon_state = "pulse" item_state = null w_class = WEIGHT_CLASS_BULKY @@ -8,9 +9,17 @@ modifystate = TRUE flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK - ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) + ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/laser) internal_cell = TRUE //prevents you from giving it an OP cell - WS Edit - cell_type = "/obj/item/stock_parts/cell/pulse" + cell_type = /obj/item/stock_parts/cell/pulse //somone make this backpack mounted, or connected to the deathsquad suit at some point + manufacturer = MANUFACTURER_SHARPLITE_NEW + ammo_x_offset = 2 + charge_sections = 6 + + spread_unwielded = 25 + + muzzleflash_iconstate = "muzzle_flash_pulse" + muzzle_flash_color = COLOR_BRIGHT_BLUE /obj/item/gun/energy/pulse/emp_act(severity) return @@ -33,21 +42,24 @@ . = ..() /obj/item/gun/energy/pulse/loyalpin - pin = /obj/item/firing_pin/implant/mindshield + pin = /obj/item/firing_pin /obj/item/gun/energy/pulse/carbine name = "pulse carbine" - desc = "A compact variant of the pulse rifle with less firepower but easier storage." - w_class = WEIGHT_CLASS_NORMAL - slot_flags = ITEM_SLOT_BELT + desc = "A next-generation pulse weapon for Nanotrasen's security forces. High production costs and logistical issues have limited its deployment to specialist Loss Prevention and Emergency Response units." + icon = 'icons/obj/guns/energy.dmi' + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK icon_state = "pulse_carbine" item_state = null internal_cell = FALSE big_gun = TRUE //haha gun go brr - cell_type = "/obj/item/stock_parts/cell/gun/large" + cell_type = /obj/item/stock_parts/cell/gun/large can_flashlight = TRUE flight_x_offset = 18 flight_y_offset = 12 + ammo_x_offset = 2 + charge_sections = 4 /obj/item/gun/energy/pulse/carbine/loyalpin pin = /obj/item/firing_pin/implant/mindshield @@ -55,11 +67,14 @@ /obj/item/gun/energy/pulse/pistol name = "pulse pistol" desc = "A pulse rifle in an easily concealed handgun package with low capacity." + icon = 'icons/obj/guns/energy.dmi' w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT icon_state = "pulse_pistol" item_state = "gun" - cell_type = "/obj/item/stock_parts/cell/pulse/pistol" + cell_type = /obj/item/stock_parts/cell/pulse/pistol + ammo_x_offset = 2 + charge_sections = 4 /obj/item/gun/energy/pulse/pistol/loyalpin pin = /obj/item/firing_pin/implant/mindshield @@ -67,7 +82,7 @@ /obj/item/gun/energy/pulse/destroyer name = "pulse destroyer" desc = "A heavy-duty energy rifle built for pure destruction." - cell_type = "/obj/item/stock_parts/cell/infinite" + cell_type = /obj/item/stock_parts/cell/infinite ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse) /obj/item/gun/energy/pulse/destroyer/attack_self(mob/living/user) @@ -78,4 +93,4 @@ desc = "A compact pulse core in a classic handgun frame for Nanotrasen officers. It's not the size of the gun, it's the size of the hole it puts through people." icon_state = "m1911" item_state = "gun" - cell_type = "/obj/item/stock_parts/cell/infinite" + cell_type = /obj/item/stock_parts/cell/infinite diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 44c667892e4a..5a01abfdc0f1 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -12,6 +12,7 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK ammo_type = list(/obj/item/ammo_casing/energy/ion) + manufacturer = MANUFACTURER_SHARPLITE_NEW /obj/item/gun/energy/ionrifle/emp_act(severity) return @@ -103,6 +104,7 @@ unique_frequency = TRUE can_flashlight = FALSE max_mod_capacity = 0 + manufacturer = MANUFACTURER_SCARBOROUGH /obj/item/gun/energy/kinetic_accelerator/crossbow/halloween name = "candy corn crossbow" @@ -120,6 +122,7 @@ suppressed = null ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) pin = null + manufacturer = MANUFACTURER_NONE /obj/item/gun/energy/plasmacutter @@ -260,7 +263,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 +387,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 ..() @@ -401,3 +404,11 @@ /obj/item/gun/energy/tesla_cannon/ComponentInitialize() . = ..() AddComponent(/datum/component/automatic_fire, 0.1 SECONDS) + +/obj/item/gun/energy/buster + name = "replica buster cannon" + icon_state = "buster" + item_state = "buster" + desc = "A replica of T4L1's buster cannon from the popular webseries RILENA. Fires a harmless energy pellet at the target." + ammo_type = list(/obj/item/ammo_casing/energy/buster) + weapon_weight = WEAPON_LIGHT diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 2caeca6f3a16..fc11a632e039 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." @@ -30,9 +36,19 @@ can_flashlight = TRUE flight_x_offset = 15 flight_y_offset = 10 + manufacturer = MANUFACTURER_SHARPLITE_NEW + + 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." can_charge = FALSE use_cyborg_cell = TRUE + +/obj/item/gun/energy/disabler/e60 + name = "E-60" + desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse." + icon_state = "e60" + manufacturer = MANUFACTURER_EOEHOMA 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..db0149a53b04 --- /dev/null +++ b/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm @@ -0,0 +1,83 @@ +/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' + + manufacturer = MANUFACTURER_PGF + +/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 + + wield_delay = 0.7 SECONDS + wield_slowdown = 0.6 + spread_unwielded = 20 + + 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..5849c2751728 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -2,10 +2,21 @@ name = "laser" icon_state = "laser" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 20 + damage = 25 + armour_penetration = -5 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 +25,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() @@ -26,6 +37,15 @@ muzzle_type = /obj/effect/projectile/muzzle/laser impact_type = /obj/effect/projectile/impact/laser +/obj/projectile/beam/laser/eoehoma + damage = 25 + armour_penetration = -10 + +/obj/projectile/beam/laser/assault + icon_state = "heavylaser" + damage = 25 + armour_penetration = 20 + /obj/projectile/beam/laser/heavylaser name = "heavy laser" icon_state = "heavylaser" @@ -111,7 +131,7 @@ /obj/projectile/beam/pulse name = "pulse" icon_state = "u_laser" - damage = 50 + damage = 40 impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_BLUE tracer_type = /obj/effect/projectile/tracer/pulse @@ -120,11 +140,6 @@ /obj/projectile/beam/pulse/on_hit(atom/target, blocked = FALSE) . = ..() - if (!QDELETED(target) && (isturf(target) || istype(target, /obj/structure/))) - if(isobj(target)) - SSexplosions.medobj += target - else - SSexplosions.medturf += target var/turf/targets_turf = target.loc if(!isopenturf(targets_turf)) return @@ -150,7 +165,7 @@ /obj/projectile/beam/emitter name = "emitter beam" icon_state = "emitter" - damage = 30 + damage = 60 //osha violation waiting to happen impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser light_color = LIGHT_COLOR_GREEN @@ -247,3 +262,10 @@ muzzle_type = /obj/effect/projectile/muzzle/laser/emitter impact_type = /obj/effect/projectile/impact/laser/emitter impact_effect_type = null + +/obj/projectile/beam/emitter/hitscan/on_hit(atom/target, blocked = FALSE) + . = ..() + var/turf/targets_turf = target.loc + if(!isopenturf(targets_turf)) + return + targets_turf.IgniteTurf(rand(8,22), "green") 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/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index a69ef88b4f68..f72ecfdfbcd4 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -65,3 +65,11 @@ speed = 0.3 damage = 30 armour_penetration = 40 + + +// .299 Eoehoma Caseless (E-40) + +/obj/projectile/bullet/c299 + name = ".229 Eoehoma caseless bullet" + damage = 25 + armour_penetration = 20 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/misc.dm b/code/modules/projectiles/projectile/energy/misc.dm index 79ee634a3e66..81fed69d516a 100644 --- a/code/modules/projectiles/projectile/energy/misc.dm +++ b/code/modules/projectiles/projectile/energy/misc.dm @@ -17,3 +17,9 @@ damage_type = TOX paralyze = 100 range = 7 + +/obj/projectile/energy/buster + name = "buster blast" + icon_state = "pulse1" + damage = 0 + damage_type = BURN 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..e60ce5a73c02 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 @@ -494,7 +494,7 @@ if(L.anti_magic_check() || !firer) L.visible_message("[src] vanishes on contact with [target]!") return BULLET_ACT_BLOCK - L.apply_status_effect(STATUS_EFFECT_BOUNTY, firer) + L.apply_status_effect(/datum/status_effect/bounty, firer) /obj/projectile/magic/antimagic name = "bolt of antimagic" @@ -507,7 +507,7 @@ if(L.anti_magic_check()) L.visible_message("[src] vanishes on contact with [target]!") return BULLET_ACT_BLOCK - L.apply_status_effect(STATUS_EFFECT_ANTIMAGIC) + L.apply_status_effect(/datum/status_effect/antimagic) /obj/projectile/magic/fetch name = "bolt of fetching" @@ -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 4de55c4264af..123afbcf387c 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)) @@ -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") @@ -2455,88 +2456,46 @@ All effects don't start immediately, but rather get worse over time; the rate is M.stuttering = min(M.stuttering + 3, 3) ..() -/datum/reagent/consumable/ethanol/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" +/datum/reagent/consumable/ethanol/shotinthedark + name = "Shot in the Dark" + description = "A coconut elixir with a golden tinge." + color = "#bbebff" + boozepwr = 40 + quality = DRINK_VERYGOOD + taste_description = "an incoming bullet" + glass_icon_state = "shotinthedark" + glass_name = "Shot in the Dark" + glass_desc = "A specially made drink from the popular webseries RILENA: LMR. Contains traces of gold from the real bullet inside." + +/datum/reagent/consumable/ethanol/bullethell + name = "Bullet Hell" + description = "An incredibly potent combination drink and fire hazard, typically served in a brass shell casing. May spontaneously combust." + color = "#c33206" 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) + taste_description = "being shot in the head several times and then set on fire" + glass_icon_state = "bullethell" + glass_name = "Bullet Hell" + glass_desc = "A specially made drink from the popular webseries RILENA: LMR. Served in an oversized brass shell casing, since glass would probably melt from how intense it is." + accelerant_quality = 20 -/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/bullethell/on_mob_life(mob/living/carbon/M) //rarely sets you on fire + if (prob(5)) + M.adjust_fire_stacks(1) + M.IgniteMob() ..() -/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) +/datum/reagent/consumable/ethanol/homesick + name = "Homesick" + description = "A soft, creamy drink that tastes like home, and hurts just as much." + color = "#a9c6e5" + boozepwr = 10 + quality = DRINK_GOOD + taste_description = "home, in a way that hurts" + glass_icon_state = "homesick" + glass_name = "Homesick" + glass_desc = "A specially made drink from the popular webseries RILENA: LMR. Ri's mother's favorite drink." + +/datum/reagent/consumable/ethanol/homesick/on_mob_metabolize(mob/living/M) + var/drink_message = pick("You think of what you've left behind...", "You think of the people who miss you...", "You think of where you're from...") + to_chat(M, "[drink_message]") diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index 4fc71a1eba0d..aca407f9b476 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -76,7 +76,7 @@ /datum/reagent/medicine/c2/helbital/on_mob_delete(mob/living/L) if(helbent) - L.remove_status_effect(STATUS_EFFECT_NECROPOLIS_CURSE) + L.remove_status_effect(/datum/status_effect/necropolis_curse) ..() /datum/reagent/medicine/c2/libital //messes with your liber @@ -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) @@ -434,7 +434,7 @@ WS End*/ SEND_SIGNAL(carbies, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) if(HAS_TRAIT_FROM(M, TRAIT_HUSK, "burn") && carbies.getFireLoss() < THRESHOLD_UNHUSK && (carbies.reagents.get_reagent_amount(/datum/reagent/medicine/c2/instabitaluri) + reac_volume >= 100)) carbies.cure_husk("burn") - carbies.visible_message("A rubbery liquid coats [carbies]'s burns. [carbies] looks a lot healthier!") //we're avoiding using the phrases "burnt flesh" and "burnt skin" here because carbies could be a skeleton or a golem or something + carbies.visible_message("A rubbery liquid coats [carbies]'s burns. [carbies] looks a lot healthier!") //we're avoiding using the phrases "burnt flesh" and "burnt skin" here because carbies could be a skeleton or something ..() return TRUE 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..05d91f17fe47 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 ..() @@ -637,14 +637,6 @@ return TRUE return ..() -/datum/reagent/mutationtoxin/golem - name = "Golem Mutation Toxin" - description = "A crystal toxin." - color = "#5EFF3B" //RGB: 94, 255, 59 - race = /datum/species/golem/random - process_flags = ORGANIC | SYNTHETIC //WS Edit - IPCs - taste_description = "rocks" - /datum/reagent/mutationtoxin/abductor name = "Abductor Mutation Toxin" description = "An alien toxin." @@ -750,7 +742,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 +990,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 +1111,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 +1120,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 +1171,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 +1204,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 +1221,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 +1862,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 +1911,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 +1936,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 +1957,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 +1975,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 +1991,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 +2406,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 +2557,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 +2592,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 +2612,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 +2778,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..d95bd68759c7 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 ..() @@ -179,11 +179,6 @@ toxpwr = 0 taste_description = "mint" -/datum/reagent/toxin/minttoxin/on_mob_life(mob/living/carbon/M) - if(HAS_TRAIT(M, TRAIT_FAT)) - M.inflate_gib() - return ..() - /datum/reagent/toxin/carpotoxin name = "Carpotoxin" description = "A deadly neurotoxin produced by the dreaded spess carp." @@ -574,7 +569,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..df76f85b1f64 --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -0,0 +1,211 @@ +/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 = "#6CC66C" + 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 = "#C0F1EE" + 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 = "#FEFEB8" + 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 = "#FEE185" + 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 = "#709AAF" + 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 = "#F0F0F0" + 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) + ..() + ADD_TRAIT(M, TRAIT_REFLECTIVE, "trickwine") + if(M.physiology.burn_mod <= initial(M.physiology.burn_mod)) + M.physiology.burn_mod *= 0.5 + M.add_filter("prism-wine", 2, list("type"="outline", "color"="#8FD7DF", "size"=1)) + 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) + REMOVE_TRAIT(M, TRAIT_REFLECTIVE, "trickwine") + if(M.physiology.burn_mod > initial(M.physiology.burn_mod)) + M.physiology.burn_mod *= 2 + M.remove_filter("prism-wine") + 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.dm b/code/modules/reagents/reagent_containers.dm index dca353500b42..55fdd7ec0e0c 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -138,6 +138,8 @@ reagents.remove_reagent(reag.type, reag.volume * frac) /obj/item/reagent_containers/AltClick(mob/user) + if(!can_interact(user)) + return . = ..() if(can_have_cap) if(cap_lost) @@ -268,7 +270,7 @@ return var/fill_name = fill_icon_state? fill_icon_state : icon_state - var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[fill_name][fill_icon_thresholds[1]]") + var/mutable_appearance/filling = mutable_appearance(fill_icon, "[fill_name][fill_icon_thresholds[1]]") var/percent = round((reagents.total_volume / volume) * 100) for(var/i in 1 to fill_icon_thresholds.len) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index a7a43f4b7109..d72389224fd9 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -38,7 +38,7 @@ /obj/item/reagent_containers/blood/random/Initialize() icon_state = "bloodpack" - blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-", "L", "S") + blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-", "L") return ..() /obj/item/reagent_containers/blood/APlus @@ -68,9 +68,6 @@ /obj/item/reagent_containers/blood/synthetic blood_type = "Coolant" -/obj/item/reagent_containers/blood/squid - blood_type = "S" - /obj/item/reagent_containers/blood/universal blood_type = "U" diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 8ec8cd674642..3710a25f3aab 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -439,3 +439,39 @@ /obj/item/reagent_containers/glass/bottle/morphine/sleeper cap_on = FALSE + +//types of syrups + +/obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/caramel + name = "bottle of caramel syrup" + desc = "A pump bottle containing caramalized sugar, also known as caramel. Do not lick." + list_reagents = list(/datum/reagent/consumable/caramel = 50) + +/obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/liqueur + name = "bottle of coffee liqueur syrup" + desc = "A pump bottle containing mexican coffee-flavoured liqueur syrup. In production since 1936, HONK." + list_reagents = list(/datum/reagent/consumable/ethanol/kahlua = 50) + +//Coffeepots: for reference, a standard cup is 30u, to allow 20u for sugar/sweetener/milk/creamer +/obj/item/reagent_containers/food/drinks/bottle/coffeepot + icon = 'icons/obj/food/containers.dmi' + name = "coffeepot" + desc = "A large pot for dispensing that ambrosia of corporate life known to mortals only as coffee. Contains 4 standard cups." + volume = 120 + icon_state = "coffeepot" + fill_icon_state = "coffeepot" + fill_icon_thresholds = list(0, 1, 30, 60, 100) + +/obj/item/reagent_containers/glass/coffee_cup + name = "coffee cup" + desc = "A heat-formed plastic coffee cup. Can theoretically be used for other hot drinks, if you're feeling adventurous." + icon = 'icons/obj/machines/coffeemaker.dmi' + icon_state = "coffee_cup_e" + base_icon_state = "coffee_cup" + possible_transfer_amounts = list(10) + volume = 30 + spillable = TRUE + +/obj/item/reagent_containers/glass/coffee_cup/update_icon_state() + icon_state = reagents.total_volume ? base_icon_state : "[base_icon_state]_e" + return ..() 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/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 16bf2a9241cb..1f13dcd3b3b4 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -8,7 +8,7 @@ build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/synthflesh = 25) build_path = /obj/item/bodypart/l_arm - category = list("initial",SPECIES_HUMAN,SPECIES_LIZARD,SPECIES_MOTH,SPECIES_PLASMAMAN,SPECIES_ETHEREAL,SPECIES_RACHNID,SPECIES_VOX,SPECIES_KEPORI,SPECIES_ABDUCTOR,SPECIES_FLYPERSON,SPECIES_GOLEM,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) + category = list("initial",SPECIES_HUMAN,SPECIES_LIZARD,SPECIES_MOTH,SPECIES_PLASMAMAN,SPECIES_ETHEREAL,SPECIES_RACHNID,SPECIES_VOX,SPECIES_KEPORI,SPECIES_ABDUCTOR,SPECIES_FLYPERSON,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) /datum/design/rightarm name = "Right Arm" @@ -16,7 +16,7 @@ build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/synthflesh = 25) build_path = /obj/item/bodypart/r_arm - category = list("initial",SPECIES_HUMAN,SPECIES_LIZARD,SPECIES_MOTH,SPECIES_PLASMAMAN,SPECIES_ETHEREAL,SPECIES_RACHNID,SPECIES_VOX,SPECIES_KEPORI,SPECIES_ABDUCTOR,SPECIES_FLYPERSON,SPECIES_GOLEM,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) + category = list("initial",SPECIES_HUMAN,SPECIES_LIZARD,SPECIES_MOTH,SPECIES_PLASMAMAN,SPECIES_ETHEREAL,SPECIES_RACHNID,SPECIES_VOX,SPECIES_KEPORI,SPECIES_ABDUCTOR,SPECIES_FLYPERSON,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) /datum/design/leftleg name = "Left Leg" @@ -24,7 +24,7 @@ build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/synthflesh = 25) build_path = /obj/item/bodypart/leg/left - category = list("initial",SPECIES_HUMAN,SPECIES_LIZARD,SPECIES_MOTH,SPECIES_PLASMAMAN,SPECIES_ETHEREAL,SPECIES_RACHNID,SPECIES_VOX,SPECIES_KEPORI,SPECIES_ABDUCTOR,SPECIES_FLYPERSON,SPECIES_GOLEM,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) + category = list("initial",SPECIES_HUMAN,SPECIES_LIZARD,SPECIES_MOTH,SPECIES_PLASMAMAN,SPECIES_ETHEREAL,SPECIES_RACHNID,SPECIES_VOX,SPECIES_KEPORI,SPECIES_ABDUCTOR,SPECIES_FLYPERSON,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) /datum/design/rightleg name = "Right Leg" @@ -32,7 +32,7 @@ build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/synthflesh = 25) build_path = /obj/item/bodypart/leg/right - category = list("initial",SPECIES_HUMAN,SPECIES_LIZARD,SPECIES_MOTH,SPECIES_PLASMAMAN,SPECIES_ETHEREAL,SPECIES_RACHNID,SPECIES_VOX,SPECIES_KEPORI,SPECIES_ABDUCTOR,SPECIES_FLYPERSON,SPECIES_GOLEM,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) + category = list("initial",SPECIES_HUMAN,SPECIES_LIZARD,SPECIES_MOTH,SPECIES_PLASMAMAN,SPECIES_ETHEREAL,SPECIES_RACHNID,SPECIES_VOX,SPECIES_KEPORI,SPECIES_ABDUCTOR,SPECIES_FLYPERSON,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) /datum/design/digitigrade/leftleg name = "Digitigrade Left Leg" @@ -319,38 +319,6 @@ build_path = /obj/item/organ/stomach/fly category = list("initial",SPECIES_FLYPERSON) -/datum/design/golem_tongue - name = "Golem Tongue" - id = "golemtongue" - build_type = LIMBGROWER - reagents_list = list(/datum/reagent/medicine/synthflesh = 10) - build_path = /obj/item/organ/tongue/golem_base - category = list("initial",SPECIES_GOLEM) - -/datum/design/golem_vocal_chords - name = "Adamantine Vocal Chords" - id = "golemvocalchords" - build_type = LIMBGROWER - reagents_list = list(/datum/reagent/medicine/synthflesh = 20) - build_path = /obj/item/organ/vocal_cords/adamantine - category = list("initial",SPECIES_GOLEM) - -/datum/design/golem_resonator - name = "Adamantine Resonator" - id = "golemresonator" - build_type = LIMBGROWER - reagents_list = list(/datum/reagent/medicine/synthflesh = 20) - build_path = /obj/item/organ/adamantine_resonator - category = list("initial",SPECIES_GOLEM) - -/datum/design/golem_vocal_chords - name = "Adamantine Vocal Chords" - id = "golemvocalchords" - build_type = LIMBGROWER - reagents_list = list(/datum/reagent/medicine/synthflesh = 20) - build_path = /obj/item/organ/vocal_cords/adamantine - category = list("initial",SPECIES_GOLEM) - /datum/design/skeleton_tongue name = "Skeleton... Tongue?" id = "skeletontongue" @@ -453,8 +421,6 @@ race = "Abductor" if(SPECIES_FLYPERSON) race = "Flyperson" - if(SPECIES_GOLEM) - race = "Golem" if(SPECIES_POD) race = "Phytosian" if(SPECIES_SKELETON) @@ -497,16 +463,6 @@ id = "limbdesign_fly" build_path = /obj/item/disk/design_disk/limbs/fly -/obj/item/disk/design_disk/limbs/golem - name = "Golem Limb Design Disk" - species = SPECIES_GOLEM - -/datum/design/limb_disk/golem - name = "Golem Limb Design Disk" - desc = "Contains designs for golem bodyparts and organs for the limbgrower." - id = "limbdesign_golem" - build_path = /obj/item/disk/design_disk/limbs/golem - /obj/item/disk/design_disk/limbs/pod name = "Phytosian Limb Design Disk" species = SPECIES_POD diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index a38d1a24c7c6..0ed2e97f39b9 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -583,15 +583,6 @@ build_path = /obj/item/circuitboard/machine/paystand category = list ("Misc. Machinery") - -/datum/design/board/fat_sucker - name = "Machine Design (Lipid Extractor)" - desc = "The circuit board for a lipid extractor." - id = "fat_sucker" - build_path = /obj/item/circuitboard/machine/fat_sucker - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_MEDICAL - /datum/design/board/stasis name = "Machine Design (Lifeform Stasis Unit)" desc = "The circuit board for a stasis unit." diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm index cf4ba7b9fa41..2cddc5043c3f 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -120,3 +120,13 @@ build_path = /obj/item/borg/upgrade/modkit/aoe/turfs category = list("Mining Designs", "Cyborg Upgrade Modules") departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/weather_monitor + name = "Weather Radio" + desc = "A weather radio designed for use in inhospitable environments. Gives audible warnings when storms approach." + id = "weatherradio" + build_type = PROTOLATHE + materials = list(/datum/material/iron=75, /datum/material/glass=25) + build_path = /obj/item/radio/weather_monitor + category = list("Mining Designs") + departmental_flags = DEPARTMENTAL_FLAG_CARGO 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..7551590a7a69 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -55,6 +55,7 @@ var/obj/machinery/rnd/server/server = multi.buffer linked_techweb = server.stored_research visible_message("Linked to [server]!") + return TRUE if(is_refillable() && O.is_drainable()) return FALSE //inserting reagents into the machine if(Insert_Item(O, user)) @@ -111,4 +112,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/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 02f51a1af9db..79009ed1fdf6 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -94,9 +94,9 @@ /datum/techweb_node/xenoorgan_biotech id = "xenoorgan_bio" display_name = "Xeno-organ Biology" - description = "Phytosians, Golems, even Skeletons... We finally understand the less well known species enough to replicate their anatomy." + description = "Phytosians, even Skeletons... We finally understand the less well known species enough to replicate their anatomy." prereq_ids = list("adv_biotech") - design_ids = list("limbdesign_abductor", "limbdesign_fly", "limbdesign_golem", "limbdesign_pod", "limbdesign_skeleton", "limbdesign_snail") + design_ids = list("limbdesign_abductor", "limbdesign_fly", "limbdesign_pod", "limbdesign_skeleton", "limbdesign_snail") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -119,7 +119,7 @@ display_name = "Biological Processing" description = "From slimes to kitchens." prereq_ids = list("biotech") - design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive", "fat_sucker") + design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -559,7 +559,7 @@ display_name = "Mining Technology" description = "Better than Efficiency V." prereq_ids = list("engineering", "basic_plasma") - design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress", "plasmacutter", "mecha_kineticgun")//e a r l y g a m e) + design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress", "plasmacutter", "mecha_kineticgun", "weatherradio")//e a r l y g a m e) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/research/xenobiology/crossbreeding/_potions.dm b/code/modules/research/xenobiology/crossbreeding/_potions.dm index 1fb17ea4d1fd..aeb34840028f 100644 --- a/code/modules/research/xenobiology/crossbreeding/_potions.dm +++ b/code/modules/research/xenobiology/crossbreeding/_potions.dm @@ -83,8 +83,8 @@ Slimecrossing Potions if(user == M) to_chat(user, "You can't drink the love potion. What are you, a narcissist?") return ..() - if(M.has_status_effect(STATUS_EFFECT_INLOVE)) - to_chat(user, "[M] is already lovestruck!") + if(M.has_status_effect(/datum/status_effect/in_love)) + to_chat(user, span_warning("[M] is already lovestruck!")) return ..() M.visible_message("[user] starts to feed [M] a love potion!", @@ -97,7 +97,7 @@ Slimecrossing Potions if(M.mind) M.mind.store_memory("You are in love with [user].") M.faction |= "[REF(user)]" - M.apply_status_effect(STATUS_EFFECT_INLOVE, user) + M.apply_status_effect(/datum/status_effect/in_love, user) qdel(src) //Pressure potion - Charged Dark Blue 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..501ff548e08f 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. @@ -258,12 +258,7 @@ Charged extracts: /obj/item/slimecross/charged/adamantine colour = "adamantine" - effect_desc = "Creates a completed golem shell." - -/obj/item/slimecross/charged/adamantine/do_effect(mob/user) - user.visible_message("[src] produces a fully formed golem shell!") - new /obj/effect/mob_spawn/human/golem/servant(get_turf(src), /datum/species/golem/adamantine, user) - ..() + effect_desc = "Does nothing. Sorry :)" /obj/item/slimecross/charged/rainbow colour = "rainbow" diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm index e4f19c892a12..89fa16cca7f5 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. @@ -290,14 +290,7 @@ Chilling extracts: /obj/item/slimecross/chilling/black colour = "black" - effect_desc = "Transforsms the user into a random type of golem." - -/obj/item/slimecross/chilling/black/do_effect(mob/user) - if(ishuman(user)) - user.visible_message("[src] crystallizes along [user]'s skin, turning into metallic scales!") - var/mob/living/carbon/human/H = user - H.set_species(/datum/species/golem/random) - ..() + effect_desc = "Does nothing. :)" /obj/item/slimecross/chilling/lightpink colour = "light pink" diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm index 6eead050c385..da9387883f0c 100644 --- a/code/modules/research/xenobiology/crossbreeding/industrial.dm +++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm @@ -188,12 +188,6 @@ Industrial extracts: plasmarequired = 3 itempath = /obj/item/storage/fancy/heart_box -/obj/item/slimecross/industrial/adamantine - colour = "adamantine" - effect_desc = "Produces sheets of adamantine." - plasmarequired = 10 - itempath = /obj/item/stack/sheet/mineral/adamantine - /obj/item/slimecross/industrial/rainbow colour = "rainbow" effect_desc = "Produces random slime extracts." diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index 8e71efc3177d..f73b9b74f173 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -344,7 +344,7 @@ Regenerative extracts: slime_heal_modifier = 0.3 /obj/item/slimecross/regenerative/adamantine/core_effect(mob/living/target, mob/user) //WIP - Find out why this doesn't work. - target.apply_status_effect(STATUS_EFFECT_SLIMESKIN) + target.apply_status_effect(/datum/status_effect/slimeskin) brute_loss = (10 + (target.getBruteLoss() * 0.65)) //most common damage type, let's not go overboard jelly_amount *= 0.5 @@ -353,4 +353,4 @@ Regenerative extracts: effect_desc = "Partially heals the target and temporarily makes them immortal, but pacifistic." /obj/item/slimecross/regenerative/rainbow/core_effect(mob/living/target, mob/user) - target.apply_status_effect(STATUS_EFFECT_RAINBOWPROTECTION) + target.apply_status_effect(/datum/status_effect/rainbow_protection) 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..113f130562de 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,17 +494,9 @@ 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) - to_chat(user, "You feel your body rapidly crystallizing...") - if(do_after(user, 120, target = user)) - to_chat(user, "You feel solid.") - user.set_species(pick(/datum/species/golem/adamantine)) - return - to_chat(user, "You stop feeding [src], and your body returns to its slimelike state.") - /obj/item/slime_extract/adamantine/proc/reset_armor(datum/species/jelly/luminescent/species) if(istype(species)) species.armor -= 25 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 bf583bcd2157..1115224a6733 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -26,86 +26,6 @@ /obj/item/seeds/sunflower/moonflower = 8 ) -//Free Golems - -/obj/item/disk/design_disk/golem_shell - name = "Golem Creation Disk" - desc = "A gift from the Liberator." - illustration = "poyo" - max_blueprints = 1 - -/obj/item/disk/design_disk/golem_shell/Initialize() - . = ..() - var/datum/design/golem_shell/G = new - blueprints[1] = G - -/datum/design/golem_shell - name = "Golem Shell Construction" - desc = "Allows for the construction of a Golem Shell." - id = "golem" - build_type = AUTOLATHE - materials = list(/datum/material/iron = 40000) - build_path = /obj/item/golem_shell - category = list("Imported") - -/obj/item/golem_shell - name = "incomplete free golem shell" - icon = 'icons/obj/wizard.dmi' - icon_state = "construct" - desc = "The incomplete body of a golem. Add ten sheets of any mineral to finish." - var/shell_type = /obj/effect/mob_spawn/human/golem - var/has_owner = FALSE //if the resulting golem obeys someone - w_class = WEIGHT_CLASS_BULKY - -/obj/item/golem_shell/attackby(obj/item/I, mob/user, params) - ..() - var/static/list/golem_shell_species_types = list( - /obj/item/stack/sheet/metal = /datum/species/golem, - /obj/item/stack/sheet/glass = /datum/species/golem/glass, - /obj/item/stack/sheet/plasteel = /datum/species/golem/plasteel, - /obj/item/stack/sheet/mineral/sandstone = /datum/species/golem/sand, - /obj/item/stack/sheet/mineral/plasma = /datum/species/golem/plasma, - /obj/item/stack/sheet/mineral/diamond = /datum/species/golem/diamond, - /obj/item/stack/sheet/mineral/gold = /datum/species/golem/gold, - /obj/item/stack/sheet/mineral/silver = /datum/species/golem/silver, - /obj/item/stack/sheet/mineral/uranium = /datum/species/golem/uranium, - /obj/item/stack/sheet/mineral/bananium = /datum/species/golem/bananium, - /obj/item/stack/sheet/mineral/titanium = /datum/species/golem/titanium, - /obj/item/stack/sheet/mineral/plastitanium = /datum/species/golem/plastitanium, - /obj/item/stack/sheet/mineral/abductor = /datum/species/golem/alloy, - /obj/item/stack/sheet/mineral/wood = /datum/species/golem/wood, - /obj/item/stack/sheet/bluespace_crystal = /datum/species/golem/bluespace, - /obj/item/stack/sheet/runed_metal = /datum/species/golem/runic, - /obj/item/stack/medical/gauze = /datum/species/golem/cloth, - /obj/item/stack/sheet/cotton/cloth = /datum/species/golem/cloth, - /obj/item/stack/sheet/mineral/adamantine = /datum/species/golem/adamantine, - /obj/item/stack/sheet/plastic = /datum/species/golem/plastic, - /obj/item/stack/tile/bronze = /datum/species/golem/bronze, - /obj/item/stack/sheet/cardboard = /datum/species/golem/cardboard, - /obj/item/stack/sheet/leather = /datum/species/golem/leather, - /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) - - if(istype(I, /obj/item/stack)) - var/obj/item/stack/O = I - var/species = golem_shell_species_types[O.merge_type] - if(species) - if(O.use(10)) - to_chat(user, "You finish up the golem shell with ten sheets of [O].") - new shell_type(get_turf(src), species, user) - qdel(src) - else - to_chat(user, "You need at least ten sheets to finish a golem!") - else - to_chat(user, "You can't build a golem out of this kind of material!") - -//made with xenobiology, the golem obeys its creator -/obj/item/golem_shell/servant - name = "incomplete servant golem shell" - shell_type = /obj/effect/mob_spawn/human/golem/servant - ///Syndicate Listening Post /obj/effect/mob_spawn/human/lavaland_syndicate 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..7b5bd27a8ada 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, \ @@ -76,27 +76,6 @@ user.put_in_hands(critical_fail) qdel(src) -/obj/effect/gluttony //Gluttony's wall: Used in the Gluttony ruin. Only lets the overweight through. - name = "gluttony's wall" - desc = "Only those who truly indulge may pass." - anchored = TRUE - density = TRUE - icon_state = "blob" - icon = 'icons/mob/blob.dmi' - color = rgb(145, 150, 0) - -/obj/effect/gluttony/CanAllowThrough(atom/movable/mover, border_dir)//So bullets will fly over and stuff. - . = ..() - if(ishuman(mover)) - var/mob/living/carbon/human/H = mover - if(H.nutrition >= NUTRITION_LEVEL_FAT) - H.visible_message("[H] pushes through [src]!", "You've seen and eaten worse than this.") - return TRUE - else - to_chat(H, "You're repulsed by even looking at [src]. Only a pig could force themselves to go through it.") - if(istype(mover, /mob/living/simple_animal/hostile/morph)) - return TRUE - /obj/structure/mirror/magic/pride //Pride's mirror: Used in the Pride ruin. name = "pride's mirror" desc = "Pride cometh before the..." 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..8bfe1f7e9bd8 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") @@ -596,7 +598,7 @@ all_shuttle_areas += M.shuttle_areas for(var/turf/oldT as anything in old_turfs) - if(!(oldT?.loc in all_shuttle_areas)) + if(!oldT || !(oldT.loc in all_shuttle_areas)) continue var/area/old_area = oldT.loc for(var/obj/docking_port/mobile/bottom_shuttle in all_towed_shuttles) diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm index 4cb5d0c65268..d0b4b49a92f6 100644 --- a/code/modules/shuttle/shuttle_rotate.dm +++ b/code/modules/shuttle/shuttle_rotate.dm @@ -46,7 +46,6 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate /************************************Structure rotate procs************************************/ -//WS Edit Begin - Smartwire Revert Do not TG MARG this /obj/structure/cable/shuttleRotate(rotation, params) params &= ~ROTATE_DIR . = ..() @@ -61,7 +60,6 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate d1 = d2 d2 = temp update_appearance() -//WS Edit End - Smartwire Revert Do not TG MARG this //Fixes dpdir on shuttle rotation /obj/structure/disposalpipe/shuttleRotate(rotation, params) diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index 2ca8e1b62027..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) 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..61c05c4170fe 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) /** @@ -291,11 +291,6 @@ return FALSE return TRUE -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem - charge_max = 800 - jaunt_in_type = /obj/effect/temp_visual/dir_setting/cult/phase - jaunt_out_type = /obj/effect/temp_visual/dir_setting/cult/phase/out - /obj/effect/proc_holder/spell/targeted/projectile/dumbfire/juggernaut name = "Gauntlet Echo" desc = "Channels energy into your gauntlet - firing its essence forward in a slow moving, yet devastating, attack." 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/misc_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm index ad71810adcd3..045c052a7c41 100644 --- a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm @@ -216,288 +216,3 @@ /obj/item/bodypart/leg/right/skeleton limb_id = "skeleton" should_draw_greyscale = FALSE - -///MUSHROOM -/obj/item/bodypart/head/mushroom - limb_id = "mush" - is_dimorphic = FALSE - -/obj/item/bodypart/chest/mushroom - limb_id = "mush" - is_dimorphic = FALSE - -/obj/item/bodypart/l_arm/mushroom - limb_id = "mush" - -/obj/item/bodypart/r_arm/mushroom - limb_id = "mush" - -/obj/item/bodypart/leg/left/mushroom - limb_id = "mush" - -/obj/item/bodypart/leg/right/mushroom - limb_id = "mush" - -///GOLEMS (i hate xenobio) -/obj/item/bodypart/head/golem - limb_id = "golem" - is_dimorphic = FALSE - -/obj/item/bodypart/chest/golem - limb_id = "golem" - is_dimorphic = FALSE - -/obj/item/bodypart/l_arm/golem - limb_id = "golem" - -/obj/item/bodypart/r_arm/golem - limb_id = "golem" - -/obj/item/bodypart/leg/left/golem - limb_id = "golem" - -/obj/item/bodypart/leg/right/golem - limb_id = "golem" - -/// -/obj/item/bodypart/head/golem/alloy - limb_id = "a_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/alloy - limb_id = "a_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/alloy - limb_id = "a_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/alloy - limb_id = "a_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/alloy - limb_id = "a_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/alloy - limb_id = "a_golem" - should_draw_greyscale = FALSE - -/// -/obj/item/bodypart/head/golem/bananium - limb_id = "ba_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/bananium - limb_id = "ba_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/bananium - limb_id = "ba_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/bananium - limb_id = "ba_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/bananium - limb_id = "ba_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/bananium - limb_id = "ba_golem" - should_draw_greyscale = FALSE - -/// -/obj/item/bodypart/head/golem/cult - limb_id = "cultgolem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/cult - limb_id = "cultgolem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/cult - limb_id = "cultgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/cult - limb_id = "cultgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/cult - limb_id = "cultgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/cult - limb_id = "cultgolem" - should_draw_greyscale = FALSE - -/// -/obj/item/bodypart/head/golem/clock - limb_id = "clockgolem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/clock - limb_id = "clockgolem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/clock - limb_id = "clockgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/clock - limb_id = "clockgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/clock - limb_id = "clockgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/clock - limb_id = "clockgolem" - should_draw_greyscale = FALSE - -/// -/obj/item/bodypart/head/golem/cloth - limb_id = "clothgolem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/cloth - limb_id = "clothgolem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/cloth - limb_id = "clothgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/cloth - limb_id = "clothgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/cloth - limb_id = "clothgolem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/cloth - limb_id = "clothgolem" - should_draw_greyscale = FALSE - -/// -/obj/item/bodypart/head/golem/cardboard - limb_id = "c_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/cardboard - limb_id = "c_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/cardboard - limb_id = "c_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/cardboard - limb_id = "c_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/cardboard - limb_id = "c_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/cardboard - limb_id = "c_golem" - should_draw_greyscale = FALSE - -/// -/obj/item/bodypart/head/golem/durathread - limb_id = "d_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/durathread - limb_id = "d_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/durathread - limb_id = "d_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/durathread - limb_id = "d_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/durathread - limb_id = "d_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/durathread - limb_id = "d_golem" - should_draw_greyscale = FALSE - -/// -/obj/item/bodypart/head/golem/bone - limb_id = "b_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/bone - limb_id = "b_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/bone - limb_id = "b_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/bone - limb_id = "b_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/bone - limb_id = "b_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/bone - limb_id = "b_golem" - should_draw_greyscale = FALSE - -/// -/obj/item/bodypart/head/golem/snow - limb_id = "sn_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/chest/golem/snow - limb_id = "sn_golem" - is_dimorphic = FALSE - should_draw_greyscale = FALSE - -/obj/item/bodypart/l_arm/golem/snow - limb_id = "sn_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/r_arm/golem/snow - limb_id = "sn_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/left/golem/snow - limb_id = "sn_golem" - should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/golem/snow - limb_id = "sn_golem" - should_draw_greyscale = FALSE 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/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm index 7cf752ddf998..48f423a12512 100644 --- a/code/modules/surgery/experimental_dissection.dm +++ b/code/modules/surgery/experimental_dissection.dm @@ -60,7 +60,7 @@ if(H?.dna?.species) if(isabductor(H)) cost = (BASE_HUMAN_REWARD*24) - else if(isgolem(H) || iszombie(H) || isshadow(H) || isandroid(H)) + else if(iszombie(H) || isshadow(H) || isandroid(H)) cost = (BASE_HUMAN_REWARD*20) else if(isjellyperson(H) || ispodperson(H) || isalien(H)) cost = (BASE_HUMAN_REWARD*14) diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm deleted file mode 100644 index be7d824e0b1f..000000000000 --- a/code/modules/surgery/lipoplasty.dm +++ /dev/null @@ -1,69 +0,0 @@ -/datum/surgery/lipoplasty - name = "Lipoplasty" - steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/cut_fat, /datum/surgery_step/remove_fat, /datum/surgery_step/close) - possible_locs = list(BODY_ZONE_CHEST) - -/datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target) - if(HAS_TRAIT(target, TRAIT_FAT) && target.nutrition >= NUTRITION_LEVEL_WELL_FED) - return 1 - return 0 - - -//cut fat -/datum/surgery_step/cut_fat - name = "cut excess fat" - implements = list( - TOOL_SAW = 100, - /obj/item/hatchet = 40, - /obj/item/kitchen/knife/butcher = 33) - time = 64 - -/datum/surgery_step/cut_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - user.visible_message("[user] begins to cut away [target]'s excess fat.", "You begin to cut away [target]'s excess fat...") - display_results(user, target, "You begin to cut away [target]'s excess fat...", - "[user] begins to cut away [target]'s excess fat.", - "[user] begins to cut [target]'s [target_zone] with [tool].") - -/datum/surgery_step/cut_fat/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results) - display_results(user, target, "You cut [target]'s excess fat loose.", - "[user] cuts [target]'s excess fat loose!", - "[user] finishes the cut on [target]'s [target_zone].") - return 1 - -//remove fat -/datum/surgery_step/remove_fat - name = "remove loose fat" - implements = list( - TOOL_RETRACTOR = 100, - TOOL_WIRECUTTER = 40) - time = 32 - experience_given = 0 //scales with fat removed - -/datum/surgery_step/remove_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results(user, target, "You begin to extract [target]'s loose fat...", - "[user] begins to extract [target]'s loose fat!", - "[user] begins to extract something from [target]'s [target_zone].") - -/datum/surgery_step/remove_fat/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) - display_results(user, target, "You extract [target]'s fat.", - "[user] extracts [target]'s fat!", - "[user] extracts [target]'s fat!") - target.overeatduration = 0 //patient is unfatted - var/removednutriment = target.nutrition - target.set_nutrition(NUTRITION_LEVEL_WELL_FED) - removednutriment -= NUTRITION_LEVEL_WELL_FED //whatever was removed goes into the meat - experience_given = (round(removednutriment/(MEDICAL_SKILL_EASY*5))) - var/mob/living/carbon/human/H = target - var/typeofmeat = /obj/item/reagent_containers/food/snacks/meat/slab/human - - if(H.dna && H.dna.species) - typeofmeat = H.dna.species.meat - - var/obj/item/reagent_containers/food/snacks/meat/slab/human/newmeat = new typeofmeat - newmeat.name = "fatty meat" - newmeat.desc = "Extremely fatty tissue taken from a patient." - newmeat.subjectname = H.real_name - newmeat.subjectjob = H.job - newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, (removednutriment / 15)) //To balance with nutriment_factor of nutriment - newmeat.forceMove(target.loc) - return ..() 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/ears.dm b/code/modules/surgery/organs/ears.dm index 4f22083377ae..f1eb39b84162 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -186,12 +186,6 @@ ear_owner.dna.species.mutant_bodyparts -= "ears" ear_owner.update_body() -/obj/item/organ/ears/bronze - name = "tin ears" - desc = "The robust ears of a bronze golem. " - damage_multiplier = 0.1 //STRONK - bang_protect = 1 //Fear me weaklings. - /obj/item/organ/ears/cybernetic name = "cybernetic ears" icon_state = "ears-c" 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/tongue.dm b/code/modules/surgery/organs/tongue.dm index 77fae8c0bb87..4469410f9b58 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -21,7 +21,6 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, - /datum/language/terrum, /datum/language/ratvar )) @@ -34,26 +33,17 @@ /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) -//Say_mod-Only Tongues -/obj/item/organ/tongue/golem_base - name = "golem tongue" - say_mod = "rumbles" - -/obj/item/organ/tongue/golem_honk - name = "bananium tongue" - say_mod = "honks" - /obj/item/organ/tongue/toma name = "mutated tongue" say_mod = "mumbles" @@ -108,7 +98,6 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, - /datum/language/terrum, /datum/language/buzzwords, /datum/language/ratvar )) @@ -245,7 +234,6 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, - /datum/language/terrum, /datum/language/calcic, /datum/language/ratvar )) @@ -328,7 +316,6 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, - /datum/language/terrum, /datum/language/ratvar, )) @@ -353,7 +340,6 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, - /datum/language/terrum, /datum/language/ratvar, /datum/language/slime )) @@ -378,7 +364,6 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, - /datum/language/terrum, /datum/language/buzzwords )) @@ -420,7 +405,6 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, - /datum/language/terrum, /datum/language/teceti_unified )) @@ -444,7 +428,6 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, - /datum/language/terrum, /datum/language/vox_pidgin )) diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 7fdf9532de17..63b6d5c0bfa0 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -22,38 +22,6 @@ /obj/item/organ/vocal_cords/proc/handle_speech(message) //actually say the message owner.say(message, spans = spans, sanitize = FALSE) -/obj/item/organ/adamantine_resonator - name = "adamantine resonator" - desc = "Fragments of adamantine exist in all golems, stemming from their origins as purely magical constructs. These are used to \"hear\" messages from their leaders." - zone = BODY_ZONE_HEAD - slot = ORGAN_SLOT_ADAMANTINE_RESONATOR - icon_state = "adamantine_resonator" - -/obj/item/organ/vocal_cords/adamantine - name = "adamantine vocal cords" - desc = "When adamantine resonates, it causes all nearby pieces of adamantine to resonate as well. Adamantine golems use this to broadcast messages to nearby golems." - actions_types = list(/datum/action/item_action/organ_action/use/adamantine_vocal_cords) - icon_state = "adamantine_cords" - -/datum/action/item_action/organ_action/use/adamantine_vocal_cords/Trigger() - if(!IsAvailable()) - return - var/message = input(owner, "Resonate a message to all nearby golems.", "Resonate") - if(QDELETED(src) || QDELETED(owner) || !message) - return - owner.say(".x[message]") - -/obj/item/organ/vocal_cords/adamantine/handle_speech(message) - var/msg = "[owner.real_name] resonates, \"[message]\"" - for(var/m in GLOB.player_list) - if(iscarbon(m)) - var/mob/living/carbon/C = m - if(C.getorganslot(ORGAN_SLOT_ADAMANTINE_RESONATOR)) - to_chat(C, msg) - if(isobserver(m)) - var/link = FOLLOW_LINK(m, owner) - to_chat(m, "[link] [msg]") - //Colossus drop, forces the listeners to obey certain commands /obj/item/organ/vocal_cords/colossus name = "divine vocal cords" @@ -368,7 +336,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 +344,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 +352,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 +376,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 +399,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 +407,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 +415,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 +423,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 +444,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 +477,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 +486,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 +495,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 +503,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 +511,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 b9a9f27a28ae..8be96f27404a 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -42,11 +42,11 @@ var/datum/tgs_version/max_api_version = TgsMaximumApiVersion(); if(version.suite != null && version.minor != null && version.patch != null && version.deprecated_patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) - TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") + TGS_ERROR_LOG("Detected unknown Interop API version! Defaulting to latest. Update the DMAPI to fix this problem.") api_datum = /datum/tgs_api/latest if(!api_datum) - TGS_ERROR_LOG("Found unsupported API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") + TGS_ERROR_LOG("Found unsupported Interop API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") return TGS_INFO_LOG("Activating API for version [version.deprefixed_parameter]") @@ -107,6 +107,13 @@ if(api) return api.ApiVersion() +/world/TgsEngine() +#ifdef OPENDREAM + return TGS_ENGINE_TYPE_OPENDREAM +#else + return TGS_ENGINE_TYPE_BYOND +#endif + /world/TgsInstanceName() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index de420a2a325a..07ce3b684584 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -12,8 +12,13 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) src.version = version /datum/tgs_api/proc/TerminateWorld() - del(world) - sleep(1) // https://www.byond.com/forum/post/2894866 + 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 diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 1b52b31d6a73..616263098fd3 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.6.2" +"5.8.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index bdcd4e4dd58e..1c7d67d20cdf 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -8,7 +8,6 @@ #define DMAPI5_TOPIC_REQUEST_LIMIT 65528 #define DMAPI5_TOPIC_RESPONSE_LIMIT 65529 -#define DMAPI5_BRIDGE_COMMAND_PORT_UPDATE 0 #define DMAPI5_BRIDGE_COMMAND_STARTUP 1 #define DMAPI5_BRIDGE_COMMAND_PRIME 2 #define DMAPI5_BRIDGE_COMMAND_REBOOT 3 @@ -18,6 +17,7 @@ #define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" #define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" +#define DMAPI5_PARAMETER_TOPIC_PORT "topicPort" #define DMAPI5_CHUNK "chunk" #define DMAPI5_CHUNK_PAYLOAD "payload" @@ -80,6 +80,7 @@ #define DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH 8 #define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9 #define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10 +#define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11 #define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" #define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" @@ -89,6 +90,7 @@ #define DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME "newInstanceName" #define DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE "chatUpdate" #define DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION "newServerVersion" +#define DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE "broadcastMessage" #define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE "commandResponse" #define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 7226f29bba60..25d49b3e3bdb 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -17,6 +17,8 @@ var/list/chat_channels var/initialized = FALSE + var/initial_bridge_request_received = FALSE + var/datum/tgs_version/interop_version var/chunked_requests = 0 var/list/chunked_topics = list() @@ -25,7 +27,8 @@ /datum/tgs_api/v5/New() . = ..() - TGS_DEBUG_LOG("V5 API created") + interop_version = version + TGS_DEBUG_LOG("V5 API created: [json_encode(args)]") /datum/tgs_api/v5/ApiVersion() return new /datum/tgs_version( @@ -38,8 +41,8 @@ access_identifier = world.params[DMAPI5_PARAM_ACCESS_IDENTIFIER] var/datum/tgs_version/api_version = ApiVersion() - version = null - var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) + version = null // we want this to be the TGS version, not the interop version + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort())) if(!istype(bridge_response)) TGS_ERROR_LOG("Failed initial bridge request!") return FALSE @@ -53,7 +56,8 @@ TGS_INFO_LOG("DMAPI validation, exiting...") TerminateWorld() - version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) + initial_bridge_request_received = TRUE + version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) // reassigning this because it can change if TGS updates 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] @@ -102,10 +106,17 @@ initialized = TRUE return TRUE +/datum/tgs_api/v5/proc/GetTopicPort() +#if defined(OPENDREAM) && defined(OPENDREAM_TOPIC_PORT_EXISTS) + return "[world.opendream_topic_port]" +#else + return null +#endif + /datum/tgs_api/v5/proc/RequireInitialBridgeResponse() TGS_DEBUG_LOG("RequireInitialBridgeResponse()") var/logged = FALSE - while(!version) + while(!initial_bridge_request_received) if(!logged) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep") logged = TRUE diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm index 37f58bcdf632..a0ab35987670 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -48,7 +48,9 @@ var/json = CreateBridgeData(command, data, TRUE) var/encoded_json = url_encode(json) - var/url = "http://127.0.0.1:[server_port]/Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]" + var/api_prefix = interop_version.minor >= 8 ? "api/" : "" + + var/url = "http://127.0.0.1:[server_port]/[api_prefix]Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]" return url /datum/tgs_api/v5/proc/CreateBridgeData(command, list/data, needs_auth) @@ -81,11 +83,16 @@ TGS_ERROR_LOG("Failed bridge request: [bridge_request]") return - var/response_json = file2text(export_response["CONTENT"]) - if(!response_json) + var/content = export_response["CONTENT"] + if(!content) TGS_ERROR_LOG("Failed bridge request, missing content!") return + var/response_json = file2text(content) + if(!response_json) + TGS_ERROR_LOG("Failed bridge request, failed to load content!") + return + var/list/bridge_response = json_decode(response_json) if(!bridge_response) TGS_ERROR_LOG("Failed bridge request, bad json: [response_json]") diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm index d7d471213813..05e6c4e1b214 100644 --- a/code/modules/tgs/v5/topic.dm +++ b/code/modules/tgs/v5/topic.dm @@ -94,7 +94,7 @@ if(DMAPI5_TOPIC_COMMAND_CHANGE_PORT) var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] if (!isnum(new_port) || !(new_port > 0)) - return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]") if(event_handler != null) event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port) @@ -141,7 +141,7 @@ if(DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE) var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] if (!isnum(new_port) || !(new_port > 0)) - return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]") server_port = new_port return TopicResponse() @@ -157,7 +157,7 @@ var/error_message = null if (new_port != null) if (!isnum(new_port) || !(new_port > 0)) - error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]" + error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]" else server_port = new_port @@ -165,7 +165,7 @@ if (!istext(new_version_string)) if(error_message != null) error_message += ", " - error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]]" + error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]" else var/datum/tgs_version/new_version = new(new_version_string) if (event_handler) @@ -175,6 +175,7 @@ var/list/reattach_response = TopicResponse(error_message) reattach_response[DMAPI5_PARAMETER_CUSTOM_COMMANDS] = ListCustomCommands() + reattach_response[DMAPI5_PARAMETER_TOPIC_PORT] = GetTopicPort() return reattach_response if(DMAPI5_TOPIC_COMMAND_SEND_CHUNK) @@ -267,4 +268,16 @@ return chunk_to_send + if(DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST) + var/message = topic_parameters[DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE] + if (!istext(message)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE]") + + TGS_WORLD_ANNOUNCE(message) + return TopicResponse() + return TopicResponse("Unknown command: [command]") + +/datum/tgs_api/v5/proc/WorldBroadcast(message) + set waitfor = FALSE + TGS_WORLD_ANNOUNCE(message) diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index f163adaaafe3..d531d4b7b9dd 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -8,7 +8,6 @@ #undef DMAPI5_TOPIC_REQUEST_LIMIT #undef DMAPI5_TOPIC_RESPONSE_LIMIT -#undef DMAPI5_BRIDGE_COMMAND_PORT_UPDATE #undef DMAPI5_BRIDGE_COMMAND_STARTUP #undef DMAPI5_BRIDGE_COMMAND_PRIME #undef DMAPI5_BRIDGE_COMMAND_REBOOT @@ -18,6 +17,7 @@ #undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER #undef DMAPI5_PARAMETER_CUSTOM_COMMANDS +#undef DMAPI5_PARAMETER_TOPIC_PORT #undef DMAPI5_CHUNK #undef DMAPI5_CHUNK_PAYLOAD @@ -78,6 +78,9 @@ #undef DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE #undef DMAPI5_TOPIC_COMMAND_HEALTHCHECK #undef DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH +#undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK +#undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK +#undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST #undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE #undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND @@ -87,6 +90,7 @@ #undef DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME #undef DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE #undef DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION +#undef DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE #undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE #undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 91ab11ab4677..a79966f69ba1 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -312,7 +312,7 @@ window = window, src_object = src_object) process_status() - DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/on_act_message, act_type, payload, state)) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(on_act_message), act_type, payload, state)) return FALSE switch(type) if("ready") 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/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index cc12fe0c638f..d4bfa21201be 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -62,6 +62,8 @@ #define TEST_OUTPUT_GREEN(text) (text) #endif +#ifdef BASIC_TESTS + #include "anchored_mobs.dm" #include "autowiki.dm" #include "bespoke_id.dm" @@ -69,7 +71,6 @@ #include "combat.dm" #include "component_tests.dm" #include "connect_loc.dm" -#include "create_and_destroy.dm" #include "biome_lists.dm" #include "emoting.dm" #include "keybinding_init.dm" @@ -78,7 +79,6 @@ #include "outfit_sanity.dm" #include "overmap.dm" #include "pills.dm" -#include "planet_gen.dm" #include "plantgrowth_tests.dm" #include "projectiles.dm" #include "quick_swap_sanity.dm" @@ -90,10 +90,8 @@ #include "reagent_names.dm" #include "reagent_recipe_collisions.dm" #include "resist.dm" -#include "ruin_placement.dm" #include "say.dm" #include "serving_tray.dm" -#include "ship_outpost_placement.dm" #include "spawn_humans.dm" #include "species_unique_id.dm" #include "species_whitelists.dm" @@ -103,12 +101,31 @@ #include "supply_pack.dm" #include "teleporters.dm" #include "timer_sanity.dm" -#include "unit_test.dm" #ifdef REFERENCE_TRACKING_DEBUG //Don't try and parse this file if ref tracking isn't turned on. IE: don't parse ref tracking please mr linter #include "find_reference_sanity.dm" #endif +#endif //BASIC_TESTS + +#ifdef CREATE_AND_DESTROY_TEST +#include "create_and_destroy.dm" +#endif //CREATE_AND_DESTROY_TEST + +#ifdef PLANET_GEN_TEST +#include "planet_gen.dm" +#endif //PLANET_GEN + +#ifdef RUIN_PLACEMENT_TEST +#include "ruin_placement.dm" +#endif //RUIN_PLACEMENT_TEST + +#ifdef SHIP_PLACEMENT_TEST +#include "ship_outpost_placement.dm" +#endif //SHIP_PLACEMENT_TEST + +#include "unit_test.dm" + #undef TEST_ASSERT #undef TEST_ASSERT_EQUAL #undef TEST_ASSERT_NOTEQUAL diff --git a/code/modules/unit_tests/combat.dm b/code/modules/unit_tests/combat.dm index 30bad7217514..9e2c7ed8a38c 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) @@ -85,7 +85,7 @@ victim.attack_hand(attacker) TEST_ASSERT_EQUAL(victim.loc.x, run_loc_bottom_left.x + 2, "Victim wasn't moved back after being pushed") - TEST_ASSERT(!victim.has_status_effect(STATUS_EFFECT_KNOCKDOWN), "Victim was knocked down despite not being against a wall") + TEST_ASSERT(!victim.has_status_effect(/datum/status_effect/incapacitating/knockdown), "Victim was knocked down despite not being against a wall") TEST_ASSERT_EQUAL(victim.get_active_held_item(), toolbox, "Victim dropped toolbox despite not being against a wall") attacker.forceMove(get_step(attacker, EAST)) @@ -94,5 +94,5 @@ victim.attack_hand(attacker) TEST_ASSERT_EQUAL(victim.loc.x, run_loc_bottom_left.x + 2, "Victim was moved after being pushed against a wall") - TEST_ASSERT(victim.has_status_effect(STATUS_EFFECT_KNOCKDOWN), "Victim was not knocked down after being pushed against a wall") + TEST_ASSERT(victim.has_status_effect(/datum/status_effect/incapacitating/knockdown), "Victim was not knocked down after being pushed against a wall") TEST_ASSERT_EQUAL(victim.get_active_held_item(), null, "Victim didn't drop toolbox after being pushed against a wall") 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/ship_outpost_placement.dm b/code/modules/unit_tests/ship_outpost_placement.dm index e1e27097ee6f..73dc32a088fa 100644 --- a/code/modules/unit_tests/ship_outpost_placement.dm +++ b/code/modules/unit_tests/ship_outpost_placement.dm @@ -1,6 +1,8 @@ /datum/unit_test/ship_outpost_placement/Run() - for(var/mapname as anything in SSmapping.ship_purchase_list) - var/datum/map_template/shuttle/map = SSmapping.ship_purchase_list[mapname] + // checks all shuttle templates, including those + // disabled or intended as subshuttles + for(var/name as anything in SSmapping.shuttle_templates) + var/datum/map_template/shuttle/map = SSmapping.shuttle_templates[name] try // they'll spawn in empty space, and won't be docked new /datum/overmap/ship/controlled(list("x" = 1, "y" = 1), map) @@ -11,6 +13,11 @@ var/datum/overmap/outpost/test_outpost = new outpost_type() for(var/datum/overmap/ship/controlled/cur_ship as anything in SSovermap.controlled_ships) + // already-docked ships are ignored. + // this was added to stop runtimes when subshuttles, which were docked to their parent ship, attempted to dock to the outpost as part of this test. + // all ships which start undocked will end the loop undocked, so this shouldn't cause any ships to be wrongfully skipped. + if(cur_ship.docked_to) + continue cur_ship.Dock(test_outpost, TRUE) var/obj/docking_port/stationary/ship_dock = cur_ship.shuttle_port.docked 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..8d6acea28452 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -76,7 +76,7 @@ /obj/vehicle/ridden/scooter/skateboard/Destroy() if(sparks) QDEL_NULL(sparks) - . = ..() + return ..() /obj/vehicle/ridden/scooter/skateboard/relaymove(mob/living/user, direction) if (grinding || world.time < next_crash) @@ -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/clothesmate.dm b/code/modules/vending/clothesmate.dm index 5732b2b2f6c5..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, @@ -122,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/security.dm b/code/modules/vending/security.dm index 1e9a3460f064..d71dcae5ab41 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -109,7 +109,7 @@ contraband = list() premium = list() voucher_items = list( - "Tactical Energy Gun" = /obj/item/gun/energy/e_gun/stun, + "Tactical Energy Gun" = /obj/item/gun/energy/e_gun/hades, "Combat Shotgun" = /obj/item/gun/ballistic/shotgun/automatic/combat, "Type U3 Uzi" = /obj/item/gun/ballistic/automatic/smg/mini_uzi) diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index a774f048f443..9c4f7c376425 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -319,7 +319,7 @@ name = "JaniDrobe" desc = "A self cleaning vending machine capable of dispensing clothing for janitors." icon_state = "janidrobe" - product_ads = "Come and get your janitorial clothing, now endorsed by lizard janitors everywhere!" + product_ads = "Come and get your janitorial clothing, now endorsed by janitors everywhere!" vend_reply = "Thank you for using the JaniDrobe!" products = list(/obj/item/clothing/under/rank/civilian/janitor = 2, /obj/item/cartridge/janitor = 2, @@ -410,8 +410,7 @@ /obj/item/clothing/accessory/armband/med = 4, /obj/item/clothing/head/beanie/rasta = 1) contraband = list(/obj/item/toy/plush/plushvar = 1, - /obj/item/toy/plush/narplush = 1, - /obj/item/clothing/head/medievaljewhat = 3) + /obj/item/toy/plush/narplush = 1) premium = list(/obj/item/clothing/suit/chaplainsuit/bishoprobe = 1, /obj/item/clothing/head/bishopmitre = 1) refill_canister = /obj/item/vending_refill/wardrobe/chap_wardrobe 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/config.txt b/config/config.txt index 0cdece6b6a16..7a579123028b 100644 --- a/config/config.txt +++ b/config/config.txt @@ -257,8 +257,8 @@ CHECK_RANDOMIZER ## Don't set this to the same server, BYOND will automatically restart players to the server when it has restarted. # SERVER ss13.example.com:2506 -## forum address -# FORUMURL https://shiptest.net/discord +## Lore address +# LOREURL https://shiptest.net/wiki/Lore_Primer ## Wiki address # WIKIURL https://shiptest.net/wiki/ 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 32492f99cb47..ee382484a0f2 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -8,10 +8,10 @@ export BYOND_MAJOR=514 export BYOND_MINOR=1588 #rust version -export RUST_VERSION=1.67.0 +export RUST_VERSION=1.67.1 #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.9.0 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/archive/2023-10.yml b/html/changelogs/archive/2023-10.yml index 7f895552d0b9..34dc45ee6419 100644 --- a/html/changelogs/archive/2023-10.yml +++ b/html/changelogs/archive/2023-10.yml @@ -87,3 +87,15 @@ - 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..d15d377eecd2 --- /dev/null +++ b/html/changelogs/archive/2023-11.yml @@ -0,0 +1,165 @@ +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) +2023-11-18: + Doubleumc: + - tweak: Bubble now consistently faces east + - rscadd: added Bubble subshuttle dock + Hibou48888: + - bugfix: added a sprite for strange plant fruit + Zevotech: + - 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 +2023-11-19: + Bjarl: + - bugfix: syndicate hoses now have the right hat + FalloutFalcon: + - bugfix: fixed shitty trickwine code (who let this guy cook) + - balance: buff to prismwine to make it useful + retlaw34, tetrazeta: + - rscadd: Eoehoma Firearms, a new guns manufacturer! + - rscadd: ERT and "Asset Protection" Hardsuits have gotten a new look! + - rscadd: New laser fire sounds + - balance: Lasers now do slightly more damage + - balance: Pulse rifles don't destroy walls anymore and do slightly less damage, + and have lost their stun mode. + - balance: Emitters do 60 damage and create turf fires on hitting a non-supermatter + object. + - bugfix: Various laser weapons that had broken autofire (E-TAR and the Tesla Cannon) + now work + - spellcheck: Grammar on some descriptions was corrected. +2023-11-20: + thgvr: + - imageadd: Restored space parallax to its former whimsical glory. +2023-11-22: + GenericDM: + - rscdel: removes deepthroat +2023-11-23: + GenericDM: + - rscdel: removes the weird examine text for looking at a fat person while starving + lizardqueenlexi: + - rscdel: Removed the "fat" status - overeating now has no negative effects. + - rscdel: Removed lipoplasty surgery. + - rscdel: Removed the fat sucker machine. + - tweak: Scanner gates no longer have a "nutrition" option available. + thgvr: + - bugfix: Fixes invisible radiation medkits +2023-11-26: + meemofcourse: + - tweak: Fancy pens now write in Adobe Garamond. +2023-11-29: + GenericDM: + - rscdel: removes tail club + - rscdel: removes all flavors of tail whip + - rscdel: removes lizardskin clothing + - rscdel: removes 'Genetic Purifier' + - tweak: makes bunny ears desc not incredibly sexist + - tweak: change up wording in magic mirror gender change + - rscdel: removes 'genuine' cat ears + thgvr: + - bugfix: Marine armor and its subtypes will no longer break digitigrade diff --git a/html/changelogs/archive/2023-12.yml b/html/changelogs/archive/2023-12.yml new file mode 100644 index 000000000000..c3c00d75dd3b --- /dev/null +++ b/html/changelogs/archive/2023-12.yml @@ -0,0 +1,136 @@ +2023-12-02: + GenericDM: + - admin: remove sgt report ~~to debug verbs~~ + Zevotech: + - rscdel: spacegym.dmm and associated code removed + - rscdel: removed spacegym lootdrops from the colossus +2023-12-03: + GenericDM: + - bugfix: you no longer commit violence against machines +2023-12-04: + PositiveEntropy: + - rscadd: Revamps blood-red hardsuits, as well as adding their equivalents to each + Gorlex branch! + - rscdel: The Scarlet Hardsuit has been shelved. +2023-12-05: + MoonTheBird: + - rscadd: Added a LOT of RILENA merch. Plushies, drinks, hoodies, shirts, cosplays... + And if you're a RILENA fan (positive trait), you get a special pin, like the + clown or mime fan! +2023-12-07: + FalloutFalcon: + - rscadd: improved radial menu for mining tools + - tweak: menus for removing attachments + PositiveEntropy: + - rscadd: The Li-Tieguai is now officially, a Syndicate ship! + meemofcourse: + - tweak: The 2nd Battlegroup officer uniform is now the Syndicate Officer uniform + - tweak: The 2nd Battlegroup officer jacket and cap have been updated to reflect + not being part of the ACLF + thgvr: + - rscdel: Removes golems + tmtmtl30: + - bugfix: Small playtime-based ship join restriction edge cases fixed. + - bugfix: Ship-spawn unit tests have been fixed and expanded. + - bugfix: fixes planetary outposts from having space underneath all the turfs +2023-12-09: + Halcyon: + - rscadd: Winter coats have a new coat of paint. + MarkSuckerberg: + - tweak: Combining eyepatches should now try to put the result into your hands afterwards + thgvr: + - balance: Goliaths no longer stun you, instead they apply a bear-trap like mass + of tentacles that slows you. Resist to break them off. +2023-12-10: + thgvr: + - tweak: Multiple Riggs-classes cannot be spawned by players anymore +2023-12-11: + thgvr: + - rscadd: Votes have a new look and new sound. +2023-12-12: + JimKil3: + - bugfix: Removed a duplicate air alarm in the Kansatsu-class Exploration Vessel + MarkSuckerberg: + - bugfix: Only one ship can spawn at a time. + - tweak: Adjusts spacing of the top-right BYOND window buttons + - rscadd: Adds a lore button to the top-right + SomeguyManperson: + - bugfix: you can no longer fold most syndicate undersuits casually into the letters + "SUIT" + thgvr: + - rscadd: Another Sarathi head marking, "Dome" + - rscadd: Sarathi frills now use secondary colors. + - rscadd: Sarathi tails now use secondary colors. + - rscadd: Added "Cracks" body marking for Sarathi + - rscdel: Removed dark tiger, light tiger, and spike Sarathi tails. +2023-12-13: + MarkSuckerberg: + - tweak: Round end now shows the ship you spawned on when possible instead of just + the sector name + - tweak: Slightly moves around the statpanel info to emphasise LST + - bugfix: Round time should no longer act strange when midnight passes + - bugfix: Respawns should no longer be delayed 24h when done over midnight + Zonespace27, Ryll-Ryll, MeeMOfCourse: + - tweak: Admins can now spawn an unarmed horde of interns in addition to the old + armed horde + - tweak: Admins can toggle name randomization for ERT's, as well as if they'd like + to be spawned in the briefing room at the time of creation + - tweak: Admins can now force ERT's to pick the leader role from the most experienced + candidates in terms of playtime + - tweak: Menus like Create Response Team and Create Portal Storm now toggle boolean + options when clicked, rather than open a popup window to select one of the two + options + - refactor: Centcom Officials are now a full subtype of ERT, rather than being a + separate antagonist type with duplicated functionality + - admin: ERTs can now have a custom shuttle that they can spawn on, on a toggle + while creating said ERT. + - admin: Shiptest-Specific ERTs, and respective files. +2023-12-17: + Immortalartisan: + - rscadd: A new sandworld ruin based on deprecated ship pubby + unit0016: + - rscadd: A new icemoon ruin has been added, should you be in need of service department + goodies. +2023-12-19: + SomeguyManperson: + - bugfix: AB+ blood is no longer incompatible with + bloodtypes + - bugfix: obliterated a floating white pixel on the cleaning skillcape + - bugfix: skillcapes are no longer missing a pixel on their left side of the front +2023-12-21: + FalloutFalcon: + - bugfix: Material tile sprites +2023-12-23: + FalloutFalcon: + - bugfix: Fixes two assistant outfits having the same path + GenericDM: + - bugfix: crate shelves no longer have layering issues + Skies-Of-Blue: + - imageadd: Adds missing iconstates to vox hardhats. Taste the void no longer! + SomeguyManperson: + - bugfix: the charliestation ruin on ice planets now obeys local gravity + - bugfix: science goggles are now more accurate when judging the research value + of anomalies + Zevotech: + - bugfix: Removed a flora with a varedited error texture on jungle_paradise + thgvr: + - tweak: Changed the text shown to shipowners about making a memo. +2023-12-29: + FalloutFalcon: + - rscdel: Syndicate Jacket + - bugfix: Hos Jacket Invisibility + MarkSuckerberg: + - admin: The server will now automatically delay round-end when a TGS deployment + is incoming + - server: Adds more TGS chat commands as well as support for the newer chat message + system. + SomeguyManperson: + - bugfix: the weebstick is no longer held back from its true purpose if you click + on a tile you can't see + - bugfix: heating rations increases their nutritional value as intended + Zevotech: + - bugfix: legion core implanting no longer aheals you on use + - rscadd: legion core implant now just does a potent organic heal with minor clone + damage when used + - rscdel: Removes the Lieutenant job datum, locker and clothing + - rscadd: The Shetland now has a First Officer and lockers for both them and the + captain now diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml new file mode 100644 index 000000000000..a426e086d142 --- /dev/null +++ b/html/changelogs/archive/2024-01.yml @@ -0,0 +1,18 @@ +2024-01-05: + MarkSuckerberg: + - bugfix: Sector time now actually shows the month of January. +2024-01-06: + Imaginos16: + - rscadd: Resprites most production machines! + - rscadd: Resprites handheld radios + MarkSuckerberg: + - bugfix: IC/sector months now actually start on the first and there's only one + year day + SomeguyManperson: + - rscadd: admins can now spawn vox more efficiently + - bugfix: bloodbags can no longer spawn with untyped (and useless) blood in them + cowbot92: + - rscadd: Ports TG's Coffee Makers + - soundadd: Adds coffee making sound + - imageadd: Adds a new type of coffee cup and pot + - code_imp: this changes code yes 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/effects/landmarks_static.dmi b/icons/effects/landmarks_static.dmi index 847c252bbfb6..05301f14a831 100644 Binary files a/icons/effects/landmarks_static.dmi and b/icons/effects/landmarks_static.dmi differ diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi index 1efce1eea691..50e88be487b0 100644 Binary files a/icons/effects/mapping_helpers.dmi and b/icons/effects/mapping_helpers.dmi differ diff --git a/icons/effects/parallax.dmi b/icons/effects/parallax.dmi index 0d09de828d05..601146297cc4 100644 Binary files a/icons/effects/parallax.dmi and b/icons/effects/parallax.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/actions/actions_items.dmi b/icons/mob/actions/actions_items.dmi index c72dbc97acdc..c52e55c475a6 100644 Binary files a/icons/mob/actions/actions_items.dmi and b/icons/mob/actions/actions_items.dmi differ diff --git a/icons/mob/clothing/accessories.dmi b/icons/mob/clothing/accessories.dmi index 5d4ee686cde5..bfde13162237 100644 Binary files a/icons/mob/clothing/accessories.dmi and b/icons/mob/clothing/accessories.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 105b302b7ffb..13baacb46614 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..3440e0b3e663 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..e9e6444a4795 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..35f629b7c864 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/head/winterhood.dmi b/icons/mob/clothing/head/winterhood.dmi new file mode 100644 index 000000000000..321896641390 Binary files /dev/null and b/icons/mob/clothing/head/winterhood.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/neck.dmi b/icons/mob/clothing/neck.dmi index 63368044af97..cd64b37eaf3c 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index d94f3a98d4f0..3a54f3ac93f2 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 82316d0e030c..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/hooded.dmi b/icons/mob/clothing/suits/hooded.dmi index a19af8b7aa64..5988b39e8a6a 100644 Binary files a/icons/mob/clothing/suits/hooded.dmi and b/icons/mob/clothing/suits/hooded.dmi differ diff --git a/icons/mob/clothing/suits/spacesuits.dmi b/icons/mob/clothing/suits/spacesuits.dmi index 6e97b33cd1b7..6350fec50200 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/suits/wintercoat.dmi b/icons/mob/clothing/suits/wintercoat.dmi new file mode 100644 index 000000000000..4d09ed00a49b Binary files /dev/null and b/icons/mob/clothing/suits/wintercoat.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/dress.dmi b/icons/mob/clothing/under/dress.dmi index eac316815846..a67fcb85331f 100644 Binary files a/icons/mob/clothing/under/dress.dmi and b/icons/mob/clothing/under/dress.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..7168514ee697 100644 Binary files a/icons/mob/clothing/under/syndicate.dmi and b/icons/mob/clothing/under/syndicate.dmi differ diff --git a/icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi b/icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi index 9d7fdc7a7c9d..5574cfb965b7 100644 Binary files a/icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi and b/icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi differ diff --git a/icons/mob/clothing/underwear/underwear_legs.dmi b/icons/mob/clothing/underwear/underwear_legs.dmi index a3a60ccfc2a7..054daef8c0d1 100644 Binary files a/icons/mob/clothing/underwear/underwear_legs.dmi and b/icons/mob/clothing/underwear/underwear_legs.dmi differ diff --git a/icons/mob/clothing/underwear/underwear_torso.dmi b/icons/mob/clothing/underwear/underwear_torso.dmi index d3d4db41316e..ad11d77748d0 100644 Binary files a/icons/mob/clothing/underwear/underwear_torso.dmi and b/icons/mob/clothing/underwear/underwear_torso.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..e1bbea2b2006 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index 6fb879f40e7c..4e816bbecc65 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi index 1febae88e98c..9ae2124fa4c5 100644 Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi index 4a6ec93b5f21..f77386a90062 100644 Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.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..740c63c4b370 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/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index e0e1fa1a83f1..7b15fb84a247 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index 0eebe19f4c16..0354d2352120 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/melee_lefthand.dmi b/icons/mob/inhands/weapons/melee_lefthand.dmi index 9ddba4cf47e7..557f281d1502 100644 Binary files a/icons/mob/inhands/weapons/melee_lefthand.dmi and b/icons/mob/inhands/weapons/melee_lefthand.dmi differ diff --git a/icons/mob/ipc_accessories.dmi b/icons/mob/ipc_accessories.dmi index 7127d6c0cccc..86311ca3172e 100644 Binary files a/icons/mob/ipc_accessories.dmi and b/icons/mob/ipc_accessories.dmi differ diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 64d0cc4ef8ce..142386586679 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/radial.dmi b/icons/mob/radial.dmi index 8ec3a0fb4666..9b43fa0d710f 100644 Binary files a/icons/mob/radial.dmi and b/icons/mob/radial.dmi differ diff --git a/icons/mob/species/kepori/onmob_suit_kepori.dmi b/icons/mob/species/kepori/onmob_suit_kepori.dmi index 9253a5b0be28..4d5eaaab1196 100644 Binary files a/icons/mob/species/kepori/onmob_suit_kepori.dmi and b/icons/mob/species/kepori/onmob_suit_kepori.dmi differ diff --git a/icons/mob/species/kepori/onmob_uniform_kepori.dmi b/icons/mob/species/kepori/onmob_uniform_kepori.dmi index 1e0416588ae3..d9bec6e95185 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/bodyparts.dmi b/icons/mob/species/lizard/bodyparts.dmi index ce88a8ba93da..9f7a7ca89b50 100644 Binary files a/icons/mob/species/lizard/bodyparts.dmi and b/icons/mob/species/lizard/bodyparts.dmi differ diff --git a/icons/mob/species/lizard/frills.dmi b/icons/mob/species/lizard/frills.dmi index 6d661308c093..beeb7887b8b5 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/lizard/markings.dmi b/icons/mob/species/lizard/markings.dmi index d2950ac19bbc..7a43feeda795 100644 Binary files a/icons/mob/species/lizard/markings.dmi and b/icons/mob/species/lizard/markings.dmi differ diff --git a/icons/mob/species/lizard/spines.dmi b/icons/mob/species/lizard/spines.dmi new file mode 100644 index 000000000000..eaadb820ebc1 Binary files /dev/null and b/icons/mob/species/lizard/spines.dmi differ diff --git a/icons/mob/species/lizard/tails.dmi b/icons/mob/species/lizard/tails.dmi index 16a7dc0b00ed..aea38b93e9ac 100644 Binary files a/icons/mob/species/lizard/tails.dmi and b/icons/mob/species/lizard/tails.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..7c6aca4107b1 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/mob/species/vox/onmob_head_vox.dmi b/icons/mob/species/vox/onmob_head_vox.dmi index d6b498ca0b5e..0ab1c3be9674 100644 Binary files a/icons/mob/species/vox/onmob_head_vox.dmi and b/icons/mob/species/vox/onmob_head_vox.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..038ad37895ca 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi index 62d085bd97e7..dff8070e67e4 100644 Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.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..3a77a2e55885 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/head/winterhood.dmi b/icons/obj/clothing/head/winterhood.dmi new file mode 100644 index 000000000000..aa212eb48da2 Binary files /dev/null and b/icons/obj/clothing/head/winterhood.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 efc8359fc5cf..7123ae5ab1c2 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..e0a755c5ca83 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 bdc98ad8852d..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/hooded.dmi b/icons/obj/clothing/suits/hooded.dmi index eaf68b6f9cbd..366b69d85139 100644 Binary files a/icons/obj/clothing/suits/hooded.dmi and b/icons/obj/clothing/suits/hooded.dmi differ diff --git a/icons/obj/clothing/suits/spacesuits.dmi b/icons/obj/clothing/suits/spacesuits.dmi index 7ab05863bf05..bd8b5e13597f 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/suits/wintercoat.dmi b/icons/obj/clothing/suits/wintercoat.dmi new file mode 100644 index 000000000000..386b905064ae Binary files /dev/null and b/icons/obj/clothing/suits/wintercoat.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/dress.dmi b/icons/obj/clothing/under/dress.dmi index 6227cb21a9b7..7cb59b080c3f 100644 Binary files a/icons/obj/clothing/under/dress.dmi and b/icons/obj/clothing/under/dress.dmi differ diff --git a/icons/obj/clothing/under/syndicate.dmi b/icons/obj/clothing/under/syndicate.dmi index 9b1630feb16b..3a0b6ff996b7 100644 Binary files a/icons/obj/clothing/under/syndicate.dmi and b/icons/obj/clothing/under/syndicate.dmi differ diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi index 89c576fb6069..5508cf0b3c8e 100644 Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.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..03fdf63dd00b 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index b1ed971658eb..ddf9be7b356f 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/food/frozen_treats.dmi b/icons/obj/food/frozen_treats.dmi index 453bfaf277b7..389949dcfa08 100644 Binary files a/icons/obj/food/frozen_treats.dmi and b/icons/obj/food/frozen_treats.dmi differ diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi index 8a0e61db9a57..1205fd888adc 100644 Binary files a/icons/obj/food/soupsalad.dmi and b/icons/obj/food/soupsalad.dmi differ diff --git a/icons/obj/guns/48x32guns.dmi b/icons/obj/guns/48x32guns.dmi index 732e37318768..89bacfc64afd 100644 Binary files a/icons/obj/guns/48x32guns.dmi and b/icons/obj/guns/48x32guns.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index ee323e39c197..3208083cd0bd 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.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/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 56246df09ad9..7a20a687e055 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/lavaland/ash_flora.dmi b/icons/obj/lavaland/ash_flora.dmi index d35d013715b1..c804d82f1769 100644 Binary files a/icons/obj/lavaland/ash_flora.dmi and b/icons/obj/lavaland/ash_flora.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/machines/autolathe.dmi b/icons/obj/machines/autolathe.dmi new file mode 100644 index 000000000000..e95269fcbcd1 Binary files /dev/null and b/icons/obj/machines/autolathe.dmi differ diff --git a/icons/obj/machines/coffeemaker.dmi b/icons/obj/machines/coffeemaker.dmi new file mode 100644 index 000000000000..246159f1c54f Binary files /dev/null and b/icons/obj/machines/coffeemaker.dmi differ diff --git a/icons/obj/machines/research.dmi b/icons/obj/machines/research.dmi index 58fad8fae335..cac198fed256 100644 Binary files a/icons/obj/machines/research.dmi and b/icons/obj/machines/research.dmi differ diff --git a/icons/obj/miningradio.dmi b/icons/obj/miningradio.dmi new file mode 100644 index 000000000000..08b6052e91a0 Binary files /dev/null and b/icons/obj/miningradio.dmi differ diff --git a/icons/obj/modular_laptop.dmi b/icons/obj/modular_laptop.dmi index 5d1c3dee66ac..e2405820bb47 100644 Binary files a/icons/obj/modular_laptop.dmi and b/icons/obj/modular_laptop.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/plushes.dmi b/icons/obj/plushes.dmi index 8d1f4993e770..2c982a8ac8f9 100644 Binary files a/icons/obj/plushes.dmi and b/icons/obj/plushes.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index 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..89f94e16a65a 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/radio.dmi b/icons/obj/radio.dmi index 5ccb6bb1d792..8b6fc77c7726 100644 Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index f208dbbe1547..e88a183d2c40 100644 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 241476f84bd6..250f7220713d 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.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/obj/surgery.dmi b/icons/obj/surgery.dmi index 1fa68293cd4a..d94097ddf2e5 100644 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 583a9fe6c7c6..78aebb9416c4 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.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/floors/tiles.dmi b/icons/turf/floors/tiles.dmi index 3f96841a71da..c3c773e8efa9 100644 Binary files a/icons/turf/floors/tiles.dmi and b/icons/turf/floors/tiles.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/icons/turf/space.dmi b/icons/turf/space.dmi index 33e3fab9a478..b8c52e459638 100644 Binary files a/icons/turf/space.dmi and b/icons/turf/space.dmi differ diff --git a/interface/interface.dm b/interface/interface.dm index e92c1cac13f1..0093e756393f 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -14,17 +14,17 @@ to_chat(src, "The wiki URL is not set in the server configuration.") return -/client/verb/forum() - set name = "forum" - set desc = "Visit the forum." +/client/verb/lore() + set name = "lore" + set desc = "View the lore landing page." set hidden = TRUE - var/forumurl = CONFIG_GET(string/forumurl) - if(forumurl) - if(alert("This will open the forum in your browser. Are you sure?",,"Yes","No")!="Yes") + var/loreurl = CONFIG_GET(string/loreurl) + if(loreurl) + if(alert("This will open the lore page in your browser. Are you sure?",,"Yes","No")!="Yes") return - src << link(forumurl) + src << link(loreurl) else - to_chat(src, "The forum URL is not set in the server configuration.") + to_chat(src, "The lore page URL is not set in the server configuration.") return /client/verb/rules() diff --git a/interface/skin.dmf b/interface/skin.dmf index 72e535bf7197..9d933e057c46 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -147,72 +147,72 @@ window "infowindow" left = "statwindow" right = "outputwindow" is-vert = false - elem "discord" - type = BUTTON - pos = 192,5 - size = 88x20 - anchor1 = 30,0 - anchor2 = 44,0 - font-family = "Verdana" - text-color = #ffffff - background-color = #40628a - saved-params = "is-checked" - text = "Join Discord" - command = "discord" elem "changelog" type = BUTTON pos = 8,5 - size = 80x20 + size = 88x20 anchor1 = 1,0 anchor2 = 14,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a saved-params = "is-checked" - text = "Changelog" + text = "Changes" command = "changelog" elem "rules" type = BUTTON - pos = 96,5 - size = 88x20 + pos = 104,5 + size = 80x20 anchor1 = 15,0 - anchor2 = 29,0 + anchor2 = 28,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a saved-params = "is-checked" text = "Rules" command = "rules" + elem "discord" + type = BUTTON + pos = 192,5 + size = 80x20 + anchor1 = 29,0 + anchor2 = 37,0 + font-family = "Verdana" + text-color = #ffffff + background-color = #40628a + saved-params = "is-checked" + text = "Discord" + command = "discord" elem "wiki" type = BUTTON - pos = 288,5 + pos = 280,5 size = 80x20 - anchor1 = 45,0 - anchor2 = 58,0 + anchor1 = 38,0 + anchor2 = 51,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a saved-params = "is-checked" text = "Wiki" command = "wiki" - elem "forum" + elem "lore" type = BUTTON - pos = 376,5 + pos = 368,5 size = 80x20 - anchor1 = 59,0 - anchor2 = 71,0 + anchor1 = 52,0 + anchor2 = 65,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a saved-params = "is-checked" - text = "Forum" - command = "forum" + text = "Lore" + command = "lore" elem "github" type = BUTTON - pos = 464,5 + pos = 456,5 size = 80x20 - anchor1 = 73,0 - anchor2 = 85,0 + anchor1 = 66,0 + anchor2 = 79,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a @@ -221,10 +221,10 @@ window "infowindow" command = "github" elem "report-issue" type = BUTTON - pos = 552,5 + pos = 544,5 size = 80x20 - anchor1 = 86,0 - anchor2 = 99,0 + anchor1 = 80,0 + anchor2 = 93,0 font-family = "Verdana" font-size = 8 text-color = #ffffff 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 437d49302d1d..df737d985b37 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" @@ -175,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" @@ -528,6 +530,7 @@ #include "code\datums\components\udder.dm" #include "code\datums\components\uplink.dm" #include "code\datums\components\wearertargeting.dm" +#include "code\datums\components\weatherannouncer.dm" #include "code\datums\components\wet_floor.dm" #include "code\datums\components\crafting\crafting.dm" #include "code\datums\components\crafting\guncrafting.dm" @@ -856,7 +859,6 @@ #include "code\game\machinery\doppler_array.dm" #include "code\game\machinery\droneDispenser.dm" #include "code\game\machinery\exp_cloner.dm" -#include "code\game\machinery\fat_sucker.dm" #include "code\game\machinery\firealarm.dm" #include "code\game\machinery\flasher.dm" #include "code\game\machinery\gulag_item_reclaimer.dm" @@ -1309,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" @@ -1354,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" @@ -1442,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" @@ -1458,7 +1463,6 @@ #include "code\game\turfs\open\floor\plating\rockplanet.dm" #include "code\game\turfs\open\floor\plating\wasteplanet.dm" #include "code\game\turfs\open\floor\plating\whitesands.dm" -#include "code\game\turfs\open\floor\hangar.dm" #include "code\game\turfs\open\space\space.dm" #include "code\game\turfs\open\space\transit.dm" #include "code\modules\admin\admin.dm" @@ -1679,7 +1683,6 @@ #include "code\modules\antagonists\nukeop\equipment\nuclear_challenge.dm" #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\revenant\revenant.dm" #include "code\modules\antagonists\revenant\revenant_abilities.dm" #include "code\modules\antagonists\revenant\revenant_antag.dm" @@ -1917,7 +1920,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" @@ -1943,13 +1948,20 @@ #include "code\modules\clothing\masks\hailer.dm" #include "code\modules\clothing\masks\miscellaneous.dm" #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\standard.dm" -#include "code\modules\clothing\outfits\vr.dm" +#include "code\modules\clothing\outfits\syndicate.dm" #include "code\modules\clothing\outfits\vv_outfit.dm" +#include "code\modules\clothing\outfits\ert\frontiersmen_ert.dm" +#include "code\modules\clothing\outfits\ert\indie_ert.dm" +#include "code\modules\clothing\outfits\ert\inteq_ert.dm" +#include "code\modules\clothing\outfits\ert\minutemen_ert.dm" +#include "code\modules\clothing\outfits\ert\nanotrasen_ert.dm" +#include "code\modules\clothing\outfits\ert\solgov_ert.dm" +#include "code\modules\clothing\outfits\ert\syndicate_ert.dm" #include "code\modules\clothing\shoes\_shoes.dm" #include "code\modules\clothing\shoes\bananashoes.dm" #include "code\modules\clothing\shoes\colour.dm" @@ -2097,6 +2109,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" @@ -2122,6 +2135,7 @@ #include "code\modules\food_and_drinks\food\snacks\dough.dm" #include "code\modules\food_and_drinks\food\snacks\meat.dm" #include "code\modules\food_and_drinks\kitchen_machinery\big_mortar.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\coffeemaker.dm" #include "code\modules\food_and_drinks\kitchen_machinery\cutting_board.dm" #include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" #include "code\modules\food_and_drinks\kitchen_machinery\food_cart.dm" @@ -2303,7 +2317,6 @@ #include "code\modules\language\swarmer.dm" #include "code\modules\language\sylvan.dm" #include "code\modules\language\teceti_unified.dm" -#include "code\modules\language\terrum.dm" #include "code\modules\language\vox_pidgin.dm" #include "code\modules\language\xenocommon.dm" #include "code\modules\library\lib_codex_gigas.dm" @@ -2359,6 +2372,7 @@ #include "code\modules\mining\equipment\marker_beacons.dm" #include "code\modules\mining\equipment\mineral_scanner.dm" #include "code\modules\mining\equipment\mining_tools.dm" +#include "code\modules\mining\equipment\miningradio.dm" #include "code\modules\mining\equipment\regenerative_core.dm" #include "code\modules\mining\equipment\resonator.dm" #include "code\modules\mining\equipment\survival_pod.dm" @@ -2516,7 +2530,6 @@ #include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" #include "code\modules\mob\living\carbon\human\species_types\ethereal.dm" #include "code\modules\mob\living\carbon\human\species_types\flypeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\golems.dm" #include "code\modules\mob\living\carbon\human\species_types\humans.dm" #include "code\modules\mob\living\carbon\human\species_types\IPC.dm" #include "code\modules\mob\living\carbon\human\species_types\jellypeople.dm" @@ -2994,6 +3007,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" @@ -3067,6 +3081,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" @@ -3299,7 +3314,6 @@ #include "code\modules\surgery\implant_removal.dm" #include "code\modules\surgery\ipc_revive.dm" #include "code\modules\surgery\limb_augmentation.dm" -#include "code\modules\surgery\lipoplasty.dm" #include "code\modules\surgery\lobectomy.dm" #include "code\modules\surgery\mechanic_steps.dm" #include "code\modules\surgery\mechanical.dm" diff --git a/sound/machines/coffeemaker_brew.ogg b/sound/machines/coffeemaker_brew.ogg new file mode 100644 index 000000000000..a8e25c09867a Binary files /dev/null and b/sound/machines/coffeemaker_brew.ogg 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/laser/e-fire.ogg b/sound/weapons/gun/laser/e-fire.ogg new file mode 100644 index 000000000000..bb8242352f20 Binary files /dev/null and b/sound/weapons/gun/laser/e-fire.ogg differ diff --git a/sound/weapons/gun/laser/e40_bal.ogg b/sound/weapons/gun/laser/e40_bal.ogg new file mode 100644 index 000000000000..3f37e9be92a5 Binary files /dev/null and b/sound/weapons/gun/laser/e40_bal.ogg differ diff --git a/sound/weapons/gun/laser/e40_las.ogg b/sound/weapons/gun/laser/e40_las.ogg new file mode 100644 index 000000000000..33c5ab017f14 Binary files /dev/null and b/sound/weapons/gun/laser/e40_las.ogg differ diff --git a/sound/weapons/gun/gauss/magovercharge.ogg b/sound/weapons/gun/laser/heavy_laser.ogg similarity index 100% rename from sound/weapons/gun/gauss/magovercharge.ogg rename to sound/weapons/gun/laser/heavy_laser.ogg diff --git a/sound/weapons/gun/laser/nt-fire.ogg b/sound/weapons/gun/laser/nt-fire.ogg new file mode 100644 index 000000000000..4ff9e82ff991 Binary files /dev/null and b/sound/weapons/gun/laser/nt-fire.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/names/golem.txt b/strings/names/golem.txt deleted file mode 100644 index 7cfcefa899da..000000000000 --- a/strings/names/golem.txt +++ /dev/null @@ -1,157 +0,0 @@ -Ablation -Alabaster -Alunite -Andesite -Anyhdrite -Basalt -Basin -Bauxite -Bedrock -Bismuth -Bismuthinite -Bituminous Coal -Borax -Boulder -Brimstone -Brittle -Calcite -Cassiterite -Cenozoic -Chalk -Chasm -Cheridite -Chert -Chromite -Cinnabar -Claystone -Coast -Cobaltite -Column -Conglomerate -Core -Crevasse -Crust -Cryolite -Crystal -Dacite -Diorite -Dolomite -Dolostone -Dragonforce -Earthflow -Epoch -Eutrophication -Fault -Flint -Foliation -Foreshock -Fossil -Gabbro -Galena -Garnierite -Geode -Geoge -Gneiss -Granite -Graphite -Gravel -Groove -Grotto -Gypsum -Hematite -Hornblende -Humus -Igneous -Ilmenite -Iron -Island -Jasper -Jet -Kaolinite -Kettle -Kimberlite -Komatiite -Landslide -Levee -Lignite -Limestone -Limonite -Luster -Madidite -Magnetite -Magnitude -Malachite -Mantle -Marble -Marcasite -Melange -Meme -Mica -Microcline -Migmatite -Mineral -Mountain -Mudstone -Obsidian -Olivine -Ore -Orpiment -Orthoclase -Outwash -Oxbow Lake -Oynx -Pahoehoe -Pebble -Pegmatite -Periclase -Petrified Wood -Phyllite -Pitchblende -Plate -Pothole -Puddingstone -Pyrite -Pyrolusite -Quake -Quarry -Quartz -Quartzite -Realgar -Reservoir -Rhyolite -Rock -Rock Salt -Rockfall -Rutile -Saltpeter -Sand -Sandstone -Satinspar -Schist -Sediment -Seismic -Selenite -Serpentine -Shale -Shore -Siltstone -Slag -Slate -Sphalerite -Stack -Stalactite -Stalagmite -Stibnite -Stone -Stress -Subduction -Sylvite -Talc -Tetrahedrite -Tidal -Trench -Valley -Volcano -Xenolith -Yardang -Zone diff --git a/tgui/packages/tgui-dev-server/package.json b/tgui/packages/tgui-dev-server/package.json index 2477641c7e79..56951b14846f 100644 --- a/tgui/packages/tgui-dev-server/package.json +++ b/tgui/packages/tgui-dev-server/package.json @@ -4,7 +4,7 @@ "version": "4.3.1", "type": "module", "dependencies": { - "axios": "^0.21.1", + "axios": "^1.6.0", "glob": "^7.1.7", "source-map": "^0.7.3", "stacktrace-parser": "^0.1.10", diff --git a/tgui/packages/tgui-panel/themes.js b/tgui/packages/tgui-panel/themes.js index 63fb2774849f..a4e0b48d42bc 100644 --- a/tgui/packages/tgui-panel/themes.js +++ b/tgui/packages/tgui-panel/themes.js @@ -49,10 +49,12 @@ export const setClientTheme = (name) => { 'changelog.text-color': '#000000', 'rules.background-color': 'none', 'rules.text-color': '#000000', + 'discord.background-color': 'none', + 'discord.text-color': '#000000', 'wiki.background-color': 'none', 'wiki.text-color': '#000000', - 'forum.background-color': 'none', - 'forum.text-color': '#000000', + 'lore.background-color': 'none', + 'lore.text-color': '#000000', 'github.background-color': 'none', 'github.text-color': '#000000', 'report-issue.background-color': 'none', @@ -101,10 +103,12 @@ export const setClientTheme = (name) => { 'changelog.text-color': COLOR_DARK_TEXT, 'rules.background-color': '#494949', 'rules.text-color': COLOR_DARK_TEXT, + 'discord.background-color': '#494949', + 'discord.text-color': COLOR_DARK_TEXT, 'wiki.background-color': '#494949', 'wiki.text-color': COLOR_DARK_TEXT, - 'forum.background-color': '#494949', - 'forum.text-color': COLOR_DARK_TEXT, + 'lore.background-color': '#494949', + 'lore.text-color': COLOR_DARK_TEXT, 'github.background-color': '#3a3a3a', 'github.text-color': COLOR_DARK_TEXT, 'report-issue.background-color': '#492020', diff --git a/tgui/packages/tgui/interfaces/ScannerGate.js b/tgui/packages/tgui/interfaces/ScannerGate.js index fe6d4a056ac9..051fb8f1defc 100644 --- a/tgui/packages/tgui/interfaces/ScannerGate.js +++ b/tgui/packages/tgui/interfaces/ScannerGate.js @@ -68,17 +68,6 @@ const TARGET_SPECIES_LIST = [ }, ]; -const TARGET_NUTRITION_LIST = [ - { - name: 'Starving', - value: 150, - }, - { - name: 'Obese', - value: 600, - }, -]; - export const ScannerGate = (props, context) => { const { act, data } = useBackend(context); return ( @@ -118,10 +107,6 @@ const SCANNER_GATE_ROUTES = { title: 'Scanner Mode: Species', component: () => ScannerGateSpecies, }, - Nutrition: { - title: 'Scanner Mode: Nutrition', - component: () => ScannerGateNutrition, - }, Nanites: { title: 'Scanner Mode: Nanites', component: () => ScannerGateNanites, @@ -177,10 +162,6 @@ const ScannerGateOff = (props, context) => { content="Species" onClick={() => act('set_mode', { new_mode: 'Species' })} /> -