diff --git a/.github/labeler.yml b/.github/labeler.yml index 5b585de45322..55b0ba3015af 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,67 +1,49 @@ Admin: - - any-glob-to-any-file: - - "code/modules/admin/**" + - "code/modules/admin/**" # Any file within the config subfolder Config: -- changed-files: - - any-glob-to-any-file: - - "config/**" + - "config/**" Dependencies: -- changed-files: - - any-glob-to-any-file: - - "**/package.json" - - "**/package-lock.json" - - "**/yarn.lock" + - "**/package.json" + - "**/package-lock.json" + - "**/yarn.lock" # When the .DME is changed DME Edit: -- changed-files: - - any-glob-to-any-file: - - "./*.dme" - - "**/*.dme" + - "./*.dme" + - "**/*.dme" # Any .dmi changes Sprites: -- changed-files: - - any-glob-to-any-file: - - "**/*.dmi" + - "**/*.dmi" # Changes to a .dm or anything in the code subfolder Code Change: -- changed-files: - - any-glob-to-any-file: - - "**/*.dm" - - "code/**" + - "**/*.dm" + - "code/**" # Changes to a .dmm or anything in the _map subfolder Map Change: -- changed-files: - - any-glob-to-any-file: - - "**/*.dmm" - - "_maps/**" + - "**/*.dmm" + - "_maps/**" # Any changes to .ogg files are marked as sound Sound: -- changed-files: - - any-glob-to-any-file: - - "**/*.ogg" + - "**/*.ogg" # Changes to the SQL subfolder SQL: -- changed-files: - - any-glob-to-any-file: - - "SQL/**" + - "SQL/**" # Changes to the tgui subfolder tgui: -- changed-files: - - any-glob-to-any-file: - - "tgui/**" + - "tgui/**" # Changes to the .Github subfolder Github: -- changed-files: - - any-glob-to-any-file: - - ".github/**" + - ".github/**" + +Deprecated Modularization: + - "whitesands/**" diff --git a/.github/workflows/autowiki.yml b/.github/workflows/autowiki.yml index b36db1444bbe..72c5b8816ce0 100644 --- a/.github/workflows/autowiki.yml +++ b/.github/workflows/autowiki.yml @@ -9,7 +9,7 @@ permissions: jobs: autowiki: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: "Check for AUTOWIKI_USERNAME" id: secrets_set diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 591415f67705..f844f8da5747 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -11,9 +11,8 @@ on: - master jobs: run_linters: - if: "!contains(github.event.head_commit.message, '[ci skip]')" name: Run Linters - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 with: @@ -67,9 +66,8 @@ jobs: cat check_regex_output.txt compile_all_maps: - if: "!contains(github.event.head_commit.message, '[ci skip]')" name: Compile Maps - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: Python setup @@ -92,34 +90,54 @@ 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: 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 }} + 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 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 48071cb3adde..70b4ac9a9331 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-latest + runs-on: ubuntu-20.04 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 1d7c299831a2..6c14be7547b6 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-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index e987d05ad2a9..8011516d27a2 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-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: Restore SpacemanDMM cache diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index dc3a206fe385..aea88c49e9fa 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@v5 + uses: actions/labeler@main with: repo-token: "${{ secrets.GITHUB_TOKEN }}" sync-labels: true diff --git a/.github/workflows/make_changelogs.yml b/.github/workflows/make_changelogs.yml index 1a30c8183e35..aceb4aee3130 100644 --- a/.github/workflows/make_changelogs.yml +++ b/.github/workflows/make_changelogs.yml @@ -7,7 +7,7 @@ on: jobs: MakeCL: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 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 3885068be756..bd4d02c17983 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-latest + runs-on: ubuntu-20.04 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 deleted file mode 100644 index a361ecedc588..000000000000 --- a/.github/workflows/run_integration_tests.yml +++ /dev/null @@ -1,65 +0,0 @@ -# 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 a19c1911c18e..01209a2828e3 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -10,7 +10,7 @@ permissions: jobs: stale: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/stale@v4 diff --git a/.github/workflows/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml index 8aa77d0d6310..9f863ce8c123 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-latest + runs-on: ubuntu-20.04 name: Update the TGS DMAPI steps: - name: Clone diff --git a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm deleted file mode 100644 index 50f7b24ed353..000000000000 --- a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm +++ /dev/null @@ -1,4729 +0,0 @@ -//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 661098d293d2..2dd6c4cbea84 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm @@ -1456,34 +1456,32 @@ /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 31d1aee2fab5..1d6aaa0388d5 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm @@ -2610,11 +2610,11 @@ /obj/structure/sign/poster/retro/lasergun{ pixel_x = 32 }, -/obj/item/gun/energy/laser/retro{ +/obj/item/gun/energy/laser/retro/old{ pixel_x = -2; pixel_y = -2 }, -/obj/item/gun/energy/laser/retro{ +/obj/item/gun/energy/laser/retro/old{ pixel_x = 2; pixel_y = 2 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm index 8758474983c4..c0fc2fcfc956 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/gorlex, -/obj/item/clothing/under/syndicate/officer, +/obj/item/clothing/suit/aclf, +/obj/item/clothing/under/syndicate/aclf, /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/officer, -/obj/item/clothing/suit/gorlex, +/obj/item/clothing/under/syndicate/aclf, +/obj/item/clothing/suit/aclf, /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 adbb037af38c..3e1476a84861 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_demon.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_demon.dmm @@ -514,9 +514,9 @@ "PA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, +/obj/item/clothing/mask/breath, /obj/item/tank/internals/oxygen/red, -/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_spider.dmm b/_maps/RandomRuins/JungleRuins/jungle_spider.dmm new file mode 100644 index 000000000000..14c11868d3af --- /dev/null +++ b/_maps/RandomRuins/JungleRuins/jungle_spider.dmm @@ -0,0 +1,266 @@ +//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 52a302920d24..999dddfea9f3 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm @@ -282,6 +282,11 @@ /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 new file mode 100644 index 000000000000..3f6744665feb --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm @@ -0,0 +1,2942 @@ +//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 new file mode 100644 index 000000000000..3a8da9995006 --- /dev/null +++ b/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm @@ -0,0 +1,628 @@ +//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 6f907b3ed9fc..5ba299eb454c 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm @@ -1,10 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/turf/closed/indestructible/reinforced, -/area/ruin/powered) "ak" = ( /turf/open/floor/plating/asteroid/rockplanet, /area/overmap_encounter/planetoid/rockplanet/explored) @@ -67,9 +61,8 @@ "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" = ( @@ -93,6 +86,10 @@ "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) @@ -142,15 +139,9 @@ }, /turf/closed/wall/r_wall/rust, /area/ruin/powered) -"dw" = ( -/obj/item/toy/plush/moth, -/obj/structure/table/greyscale, -/turf/open/floor/engine, -/area/ruin/powered) "dJ" = ( /obj/structure/rack, -/obj/item/circuitboard/machine/techfab/department/cargo, -/obj/item/stack/sheet/mineral/diamond/five, +/obj/item/storage/firstaid/tactical, /turf/open/floor/plating/rust, /area/ruin/powered) "dN" = ( @@ -441,18 +432,14 @@ /turf/open/floor/plating/rust, /area/ruin/powered) "kC" = ( -/obj/machinery/door/keycard{ - puzzle_id = "factory4" - }, +/obj/machinery/door/keycard, /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" = ( @@ -462,11 +449,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" = ( @@ -494,19 +481,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/patterned, /area/ruin/powered) -"lI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/conveyor/auto, -/turf/open/floor/engine, -/area/ruin/powered) "lN" = ( /obj/structure/railing, /obj/effect/decal/cleanable/dirt/dust, @@ -525,13 +499,6 @@ }, /turf/open/floor/plating/rust, /area/ruin/powered) -"mg" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/railing{ - dir = 6 - }, -/turf/open/floor/plating, -/area/ruin/powered) "mi" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ @@ -632,8 +599,10 @@ /turf/open/floor/plasteel/patterned, /area/ruin/powered) "of" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/conveyor/auto, +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/machinery/light/dim/directional/north, /turf/open/floor/engine, /area/ruin/powered) "oh" = ( @@ -712,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" = ( @@ -764,25 +733,30 @@ }, /turf/open/floor/engine, /area/ruin/powered) -"pU" = ( +"pP" = ( /obj/effect/turf_decal/industrial/warning/dust{ dir = 1 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/railing/corner, +/turf/open/floor/engine, +/area/ruin/powered) +"pU" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 }, +/obj/structure/railing, /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" = ( @@ -793,10 +767,19 @@ /turf/open/floor/engine, /area/ruin/powered) "qm" = ( -/obj/structure/chair/plastic, /obj/structure/railing, +/obj/structure/chair/plastic, /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 @@ -854,9 +837,6 @@ /area/ruin/powered) "rv" = ( /obj/machinery/recycler/deathtrap, -/obj/machinery/conveyor/auto{ - dir = 4 - }, /turf/open/floor/engine, /area/ruin/powered) "rO" = ( @@ -900,6 +880,11 @@ }, /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, @@ -908,24 +893,25 @@ /turf/open/floor/plasteel/patterned, /area/ruin/powered) "sN" = ( -/obj/structure/cable, -/obj/machinery/light/dim/directional/north, +/obj/machinery/conveyor/inverted, /obj/structure/grille, -/turf/open/floor/plating, -/area/ruin/powered) -"td" = ( -/obj/machinery/power/emitter/welded{ - active = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/structure/cable, /obj/machinery/light/dim/directional/north, +/turf/open/floor/engine, +/area/ruin/powered) +"sV" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/conveyor/auto, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"td" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, /turf/open/floor/engine, /area/ruin/powered) "te" = ( @@ -934,18 +920,29 @@ }, /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/power/emitter/welded{ - dir = 1; - active = 1 +/obj/machinery/disposal/deliveryChute{ + dir = 8 }, -/obj/structure/cable, -/obj/machinery/light/dim/directional/south, +/turf/open/floor/engine, +/area/ruin/powered) +"tC" = ( /obj/structure/disposalpipe/segment{ - dir = 9 + dir = 10 }, -/obj/machinery/conveyor/auto{ - dir = 1 +/obj/structure/railing{ + dir = 10 }, /turf/open/floor/engine, /area/ruin/powered) @@ -1021,11 +1018,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/powered) -"vA" = ( -/obj/effect/turf_decal/industrial/warning/dust{ - dir = 8 +"vz" = ( +/obj/machinery/disposal/deliveryChute, +/turf/open/floor/engine, +/area/ruin/powered) +"vJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"vK" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/effect/turf_decal/number/zero, /turf/open/floor/engine, /area/ruin/powered) "vN" = ( @@ -1103,8 +1109,27 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/powered) +"yw" = ( +/obj/machinery/power/emitter/ctf{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"za" = ( +/obj/machinery/power/emitter/ctf{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) "zg" = ( -/obj/effect/turf_decal/industrial/warning/dust/corner, +/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) "zh" = ( @@ -1167,15 +1192,6 @@ }, /turf/open/floor/engine, /area/ruin/powered) -"AW" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/turf/open/floor/engine, -/area/ruin/powered) "AY" = ( /obj/structure/fence/door/opened{ dir = 8 @@ -1189,6 +1205,10 @@ /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 @@ -1202,11 +1222,28 @@ }, /turf/open/floor/engine, /area/ruin/powered) +"BE" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/turf/open/floor/engine, +/area/ruin/powered) "BQ" = ( /obj/structure/table/greyscale, -/obj/item/keycard{ - puzzle_id = "factory4" +/obj/item/keycard, +/turf/open/floor/engine, +/area/ruin/powered) +"BR" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 }, +/obj/effect/turf_decal/number/zero, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/powered) "BW" = ( @@ -1235,26 +1272,10 @@ /obj/structure/sign/departments/medbay/alt, /turf/closed/wall/rust, /area/ruin/powered) -"Cs" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/ruin/powered) "CK" = ( /obj/structure/sign/poster/official/moth/hardhats, /turf/closed/wall, /area/ruin/powered) -"CP" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ruin/powered) "CW" = ( /obj/structure/table/greyscale, /obj/item/clothing/head/collectable/hardhat{ @@ -1313,16 +1334,6 @@ }, /turf/open/floor/engine, /area/ruin/powered) -"Eo" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ruin/powered) "Ep" = ( /obj/structure/railing/corner, /obj/effect/decal/cleanable/dirt, @@ -1332,11 +1343,30 @@ /obj/effect/turf_decal/industrial/warning/dust, /turf/open/floor/engine, /area/ruin/powered) -"EG" = ( -/obj/structure/table/greyscale, -/obj/structure/disposalpipe/segment{ +"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, /turf/open/floor/engine, /area/ruin/powered) "Fb" = ( @@ -1428,7 +1458,6 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/jungle/mook, /turf/open/floor/engine, /area/ruin/powered) "Gu" = ( @@ -1437,12 +1466,21 @@ }, /turf/open/floor/engine, /area/ruin/powered) -"Gz" = ( -/obj/effect/turf_decal/industrial/warning/dust/corner{ +"Gv" = ( +/obj/machinery/disposal/deliveryChute{ dir = 1 }, /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, +/turf/open/floor/engine, +/area/ruin/powered) "GE" = ( /obj/structure/railing{ dir = 4 @@ -1454,6 +1492,10 @@ /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, @@ -1498,6 +1540,18 @@ /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/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/engine, +/area/ruin/powered) "HU" = ( /obj/machinery/light/broken/directional/east, /turf/open/floor/plasteel/stairs/old, @@ -1519,6 +1573,35 @@ }, /turf/open/floor/engine, /area/ruin/powered) +"It" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"IA" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/turf/open/floor/engine, +/area/ruin/powered) +"IF" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/engine, +/area/ruin/powered) "IM" = ( /obj/structure/railing{ dir = 8 @@ -1532,15 +1615,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/patterned, /area/ruin/powered) -"IT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ruin/powered) "Jj" = ( /obj/structure/railing{ dir = 5 @@ -1627,22 +1701,37 @@ }, /turf/open/floor/engine, /area/ruin/powered) -"KL" = ( -/obj/structure/chair/plastic{ +"KC" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/obj/structure/railing/corner{ 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 = 9 + dir = 1 }, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/engine, /area/ruin/powered) -"Lb" = ( +"KL" = ( +/obj/structure/railing{ + dir = 9 + }, /obj/structure/chair/plastic{ - dir = 8 + dir = 4 }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"Lb" = ( /obj/structure/railing{ dir = 5 }, +/obj/structure/chair/plastic{ + dir = 8 + }, /turf/open/floor/plasteel/patterned, /area/ruin/powered) "Lp" = ( @@ -1704,9 +1793,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-8" - }, /turf/open/floor/plating/rust, /area/ruin/powered) "Mr" = ( @@ -1721,12 +1807,6 @@ }, /turf/open/floor/plasteel/patterned, /area/ruin/powered) -"MP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/ruin/powered) "Na" = ( /obj/effect/turf_decal/industrial/warning/dust{ dir = 1 @@ -1797,20 +1877,6 @@ /obj/structure/holosign/barrier/engineering/infinite, /turf/open/floor/plating, /area/ruin/powered) -"OC" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/conveyor/auto, -/turf/open/floor/engine, -/area/ruin/powered) -"OH" = ( -/obj/effect/turf_decal/industrial/warning/dust{ - dir = 4 - }, -/obj/structure/sign/number/four, -/turf/open/floor/engine, -/area/ruin/powered) "Pa" = ( /obj/structure/sign/warning/testchamber, /turf/closed/wall, @@ -1857,11 +1923,12 @@ /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, -/obj/structure/grille, -/turf/open/floor/plating, +/turf/open/floor/engine, /area/ruin/powered) "Rd" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -1908,15 +1975,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/patterned, /area/ruin/powered) -"Ss" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/turf/open/floor/engine, -/area/ruin/powered) "Su" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -1982,6 +2040,9 @@ /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 @@ -1991,9 +2052,6 @@ pixel_y = 2 }, /obj/item/toy/cards/deck/kotahi, -/obj/structure/railing{ - dir = 1 - }, /turf/open/floor/plating, /area/ruin/powered) "TM" = ( @@ -2096,15 +2154,10 @@ /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 = 1 + dir = 4 }, +/obj/machinery/light/dim/directional/south, /turf/open/floor/engine, /area/ruin/powered) "XX" = ( @@ -2721,7 +2774,7 @@ GV aB aB bf -aa +bf bf hj jL @@ -2771,12 +2824,12 @@ jO ln oG ro -hJ +uQ Op tR DI uW -hJ +GN ro JC Mp @@ -2814,7 +2867,7 @@ jR pk ol rv -dw +uQ hJ AY DO @@ -2857,12 +2910,12 @@ jR lC ol ro -hJ +uQ aQ xg Ep qd -hJ +uQ ro Jt LQ @@ -3030,8 +3083,8 @@ lQ oo sd uQ -uQ -uQ +yw +yw uQ Ga GS @@ -3074,9 +3127,9 @@ px st vi QK -te -te -te +Br +EB +Br GU tR Kj @@ -3117,9 +3170,9 @@ pC sx vi sN -te -te -te +Br +Br +Br Hs Ai Kn @@ -3159,8 +3212,8 @@ mu pE sd uQ -uQ -uQ +za +za uQ Go HG @@ -3243,14 +3296,14 @@ iS hJ mE pG -tR -Ai -tR -tR -Ai -tR -tR -tR +sH +vs +rh +Bz +EE +rh +rh +xg Ew LQ gv @@ -3285,16 +3338,16 @@ aB aB hJ my -pG -tR -tR +pP +sV +vz zg -Bz -OH -GS -tR -tR -Lp +BC +BC +te +Gv +It +KC Nn zC Pa @@ -3328,16 +3381,16 @@ aB bf hi mR -pG -tR -hJ -Cs -ro -ro -Cs -hJ -tR -Ew +pU +td +vJ +vz +BE +BC +Gv +HL +td +KJ NK hi hi @@ -3372,15 +3425,15 @@ bf hj Mq pU -MP +ro td +hJ of -of -OC -ro -ro +BC hJ -Ew +td +IA +KJ LT hi aB @@ -3415,14 +3468,14 @@ bf hj no qb -Cs -lI -BC +te +tR +te BQ EG -ro -CP -Cs +rO +rO +rO KL NP hi @@ -3458,14 +3511,14 @@ je kC nq qm +tu +tw hJ -AW -Ss -IT +ro XU -Eo -tw hJ +tw +BC TE GR hi @@ -3500,15 +3553,15 @@ hf jq kI nt -mg -tR -hJ -Cs -BC -BC -Cs -hJ -tR +pE +tw +vK +vz +ro +Fa +Gv +HT +tw Lb IO hi @@ -3543,16 +3596,16 @@ bf bf hi lC -pG -tR -tR -Ip -vA -Fb +qt +tC +vz +rO +ro +ro Gz -tR -tR -Ew +Gv +IF +JV NK Ph hj @@ -3587,14 +3640,14 @@ bf hi ob pG -tR -Ai -tR -Ai -tR -tR -tR -tR +sC +rS +uT +BR +Fb +uT +uT +Gu Lp Mr Pt diff --git a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm deleted file mode 100644 index 7ca31921e401..000000000000 --- a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm +++ /dev/null @@ -1,4760 +0,0 @@ -//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 new file mode 100644 index 000000000000..8953d652b99a --- /dev/null +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_golemhijack.dmm @@ -0,0 +1,1390 @@ +//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 deleted file mode 100644 index 1cd150e9b8dc..000000000000 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm +++ /dev/null @@ -1,3321 +0,0 @@ -//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 new file mode 100644 index 000000000000..e8932e8b51ed --- /dev/null +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_youreinsane.dmm @@ -0,0 +1,320 @@ +//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 5c04f6ced446..3c98825f7924 100644 --- a/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm +++ b/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm @@ -1163,6 +1163,7 @@ /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 fd062bcd87a4..93b0dc996b77 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -132,6 +132,7 @@ /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 }, @@ -430,6 +431,7 @@ /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 f477717d9b81..73c7dd734c00 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/techfab/department/medical, +/obj/machinery/rnd/production/protolathe, /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/floor/plating, +/turf/open/space, /area/ruin/space/has_grav) "XX" = ( /obj/structure/window/reinforced{ diff --git a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm index f425c41bccf3..0104b112aeda 100644 --- a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm +++ b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm @@ -25,7 +25,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ dir = 4 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer1{ dir = 4 }, /obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer4{ @@ -37,7 +37,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ dir = 1 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer1{ dir = 1 }, /obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer4{ @@ -52,7 +52,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ dir = 8 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer1{ dir = 8 }, /obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer4{ @@ -119,7 +119,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 6 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1{ dir = 6 }, /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ @@ -131,7 +131,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1{ dir = 4 }, /obj/structure/holobox, @@ -144,7 +144,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ dir = 4 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer1{ dir = 4 }, /obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer4{ @@ -165,7 +165,7 @@ /area/ruin/space/has_grav/hellfactory) "aC" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1, /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4, /turf/open/floor/plastic, /area/ruin/space/has_grav/hellfactory) @@ -203,7 +203,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1{ dir = 5 }, /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ @@ -215,7 +215,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1{ dir = 4 }, /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ @@ -227,7 +227,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1{ dir = 9 }, /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ @@ -1029,7 +1029,7 @@ /area/ruin/space/has_grav/hellfactory) "Nv" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer1, /obj/machinery/light/directional/east, /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4, /turf/open/floor/plastic, diff --git a/_maps/RandomRuins/SpaceRuins/lab4071.dmm b/_maps/RandomRuins/SpaceRuins/lab4071.dmm index 0e35f81af2f8..2f4c94d3c939 100644 --- a/_maps/RandomRuins/SpaceRuins/lab4071.dmm +++ b/_maps/RandomRuins/SpaceRuins/lab4071.dmm @@ -231,6 +231,17 @@ /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"; @@ -243,6 +254,34 @@ /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, @@ -531,6 +570,17 @@ /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" = ( @@ -4907,7 +4957,7 @@ GV GV ao cq -gP +eh gV jG lN @@ -4945,7 +4995,7 @@ GV GV ao cq -gP +et hf jO lS diff --git a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm new file mode 100644 index 000000000000..43ec10644a73 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm @@ -0,0 +1,377 @@ +//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 new file mode 100644 index 000000000000..a953fc3f543c --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/nuclear_dump.dmm @@ -0,0 +1,1719 @@ +//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 caca2d64c3e1..321daa633782 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -6236,8 +6236,8 @@ /area/ruin/space/has_grav/ancientstation/sec) "rE" = ( /obj/machinery/door/airlock/science{ - dir = 4; - pixel_y = 0 + pixel_y = 0; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -6349,8 +6349,8 @@ /area/ruin/space/has_grav/ancientstation) "tK" = ( /obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" + name = "Engineering"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ @@ -6360,21 +6360,19 @@ dir = 4 }, /obj/machinery/door/poddoor{ - dir = 8; - id = "ancient" + id = "ancient"; + dir = 8 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/engi) "tL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/gun/energy/laser/retro{ +/obj/item/gun/energy/laser/retro/old{ pixel_x = -2; pixel_y = -2 }, -/obj/item/gun/energy/laser/retro{ +/obj/item/gun/energy/laser/retro/old{ pixel_x = 2; pixel_y = 2 }, @@ -6525,8 +6523,8 @@ "wx" = ( /obj/machinery/door/window/eastleft, /obj/machinery/door/poddoor{ - dir = 4; - id = "proto" + id = "proto"; + dir = 4 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) @@ -6637,8 +6635,8 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "xG" = ( /obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Backup Generator Room" + name = "Backup Generator Room"; + dir = 4 }, /obj/structure/cable{ icon_state = "0-4" @@ -6836,8 +6834,8 @@ dir = 4 }, /obj/machinery/door/airlock/atmos/glass{ - dir = 4; - name = "Station Atmospherics" + name = "Station Atmospherics"; + dir = 4 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/atmo) @@ -6955,8 +6953,8 @@ "Da" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/public/glass{ - dir = 4; - name = "Dining Area" + name = "Dining Area"; + dir = 4 }, /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -7202,8 +7200,8 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - dir = 4; - name = "Engineering External Access" + name = "Engineering External Access"; + dir = 4 }, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -7222,8 +7220,8 @@ dir = 4 }, /obj/machinery/door/airlock/external{ - dir = 8; - name = "Engineering External Access" + name = "Engineering External Access"; + dir = 8 }, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -7267,8 +7265,8 @@ /area/ruin/space/has_grav/ancientstation/atmo) "HL" = ( /obj/machinery/door/airlock/maintenance_hatch{ - dir = 8; - name = "Engineering Storage" + name = "Engineering Storage"; + dir = 8 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ @@ -7308,8 +7306,8 @@ icon_state = "4-8" }, /obj/machinery/door/poddoor{ - dir = 8; - id = "ancient" + id = "ancient"; + dir = 8 }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) @@ -7491,8 +7489,8 @@ name = "Beta Station Access" }, /obj/machinery/door/poddoor{ - dir = 4; - id = "ancient" + id = "ancient"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7608,8 +7606,8 @@ "Ma" = ( /obj/machinery/door/window/westleft, /obj/machinery/door/poddoor{ - dir = 4; - id = "proto" + id = "proto"; + dir = 4 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) @@ -7628,12 +7626,12 @@ "Mr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/command{ - dir = 4; - name = "Delta Station Access" + name = "Delta Station Access"; + dir = 4 }, /obj/machinery/door/poddoor{ - dir = 4; - id = "ancient" + id = "ancient"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7798,8 +7796,8 @@ "Om" = ( /obj/machinery/door/window/eastright, /obj/machinery/door/poddoor{ - dir = 4; - id = "proto" + id = "proto"; + dir = 4 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) @@ -7886,8 +7884,8 @@ dir = 8 }, /obj/machinery/door/poddoor{ - dir = 8; - id = "ancient" + id = "ancient"; + dir = 8 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/sec) @@ -7984,8 +7982,8 @@ name = "Beta Station Access" }, /obj/machinery/door/poddoor{ - dir = 4; - id = "ancient" + id = "ancient"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ @@ -8104,12 +8102,12 @@ "Ri" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/command{ - dir = 4; - name = "Delta Station Access" + name = "Delta Station Access"; + dir = 4 }, /obj/machinery/door/poddoor{ - dir = 4; - id = "ancient" + id = "ancient"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ @@ -8122,8 +8120,8 @@ /area/ruin/space/has_grav/ancientstation) "Rn" = ( /obj/machinery/door/airlock/atmos/glass{ - dir = 4; - name = "Station Atmospherics" + name = "Station Atmospherics"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ @@ -8209,8 +8207,8 @@ dir = 8 }, /obj/machinery/door/poddoor{ - dir = 4; - id = "proto" + id = "proto"; + dir = 4 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) @@ -8254,8 +8252,8 @@ /area/space/nearstation) "Tg" = ( /obj/machinery/door/poddoor{ - dir = 4; - id = "proto" + id = "proto"; + dir = 4 }, /obj/machinery/door/window/westright, /turf/open/floor/plasteel/white, @@ -8269,9 +8267,9 @@ "Ts" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/command{ - dir = 4; name = "Charlie Station Access"; - req_access_txt = "200" + req_access_txt = "200"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8311,8 +8309,8 @@ /area/ruin/space/has_grav/ancientstation) "TZ" = ( /obj/machinery/door/airlock/medical/glass{ - dir = 4; - name = "Medical Bay" + name = "Medical Bay"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -8414,8 +8412,8 @@ "VI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/public/glass{ - dir = 4; - name = "Hydroponics" + name = "Hydroponics"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ @@ -8658,9 +8656,9 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/wooden, /obj/machinery/door/airlock/command{ - dir = 4; name = "Charlie Station Access"; - req_access_txt = "200" + req_access_txt = "200"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor/border_only{ @@ -8703,8 +8701,8 @@ dir = 4 }, /obj/machinery/door/poddoor{ - dir = 4; - id = "proto" + id = "proto"; + dir = 4 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) @@ -8721,9 +8719,9 @@ /area/ruin/space/has_grav/ancientstation/atmo) "Zm" = ( /obj/machinery/door/airlock/medical/glass{ - dir = 4; name = "Chemical Storage"; - req_access_txt = "200" + req_access_txt = "200"; + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8761,8 +8759,8 @@ icon_state = "0-8" }, /obj/machinery/door/poddoor{ - dir = 8; - id = "ancient" + id = "ancient"; + dir = 8 }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/sec) diff --git a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm index 3d27fa1b142c..521b2beac456 100644 --- a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm +++ b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm @@ -324,6 +324,7 @@ /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, @@ -1340,12 +1341,6 @@ /obj/item/target/alien, /turf/open/floor/plating/dirt/jungle/wasteland, /area/ruin/space/has_grav/syndicircle/training) -"IJ" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/syndicircle/halls) "IT" = ( /obj/structure/cable{ icon_state = "1-4" @@ -3370,7 +3365,7 @@ AV Dm Bj IY -IJ +ap ap OE am diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 12875d01ff1a..67fb3c35f127 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,9 +2017,7 @@ /obj/structure/cable{ icon_state = "0-2" }, -/obj/structure/poddoor_assembly{ - dir = 8 - }, +/obj/structure/poddoor_assembly, /obj/structure/spacevine, /obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/plating, @@ -2210,6 +2208,7 @@ /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 @@ -2217,9 +2216,6 @@ /obj/machinery/power/shieldwallgen/atmos{ dir = 1 }, -/obj/structure/poddoor_assembly{ - dir = 8 - }, /turf/open/floor/plating, /area/ruin/space/has_grav/singularitylab) "ja" = ( @@ -2664,8 +2660,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" = ( @@ -4400,7 +4396,7 @@ pixel_x = -32; pixel_y = -4 }, -/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/singularitylab/cargo) "rp" = ( @@ -4792,7 +4788,7 @@ /area/ruin/space/has_grav/singularitylab/lab) "th" = ( /obj/structure/spacevine, -/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel, /area/ruin/space/has_grav/singularitylab) "tk" = ( @@ -8775,11 +8771,9 @@ /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" = ( @@ -8828,10 +8822,8 @@ /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" = ( @@ -8942,10 +8934,8 @@ /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" = ( @@ -12179,7 +12169,7 @@ "Uo" = ( /obj/structure/table, /obj/structure/spacevine, -/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/singularitylab/engineering) "Up" = ( @@ -12942,13 +12932,11 @@ /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 new file mode 100644 index 000000000000..6d69992c7910 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/spacegym.dmm @@ -0,0 +1,321 @@ +//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 548003149338..a8413ce407c3 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -4990,6 +4990,15 @@ /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/syndicate_litieguai.json b/_maps/configs/independent_litieguai.json similarity index 73% rename from _maps/configs/syndicate_litieguai.json rename to _maps/configs/independent_litieguai.json index 887828e28176..d189af20b550 100644 --- a/_maps/configs/syndicate_litieguai.json +++ b/_maps/configs/independent_litieguai.json @@ -1,13 +1,12 @@ { "$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/syndicate/syndicate_litieguai.dmm", + "map_path": "_maps/shuttles/independent/independent_litieguai.dmm", "namelists": [ "SPACE", "BEASTS", @@ -15,20 +14,20 @@ ], "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/syndicate/captain/cybersun", + "outfit": "/datum/outfit/job/captain", "slots": 1 }, - "Medical Director": { - "outfit": "/datum/outfit/job/syndicate/cmo", + "Chief Medical Officer": { + "outfit": "/datum/outfit/job/cmo/medicaldirector", "officer": true, "slots": 1 }, "Trauma Team Technician": { - "outfit": "/datum/outfit/job/syndicate/doctor/cybersun", + "outfit": "/datum/outfit/job/paramedic/traumateam", "slots": 3 }, - "Cybersun Medical Intern": { - "outfit": "/datum/outfit/job/syndicate/assistant/cybersun", + "Medical Intern": { + "outfit": "/datum/outfit/job/doctor/juniordoctor", "slots": 3 } }, diff --git a/_maps/configs/independent_rigger.json b/_maps/configs/independent_rigger.json index 324cf75dd3ea..8229cee469de 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": 1, + "limit": 2, "job_slots": { "Captain": { "outfit": "/datum/outfit/job/captain/western", diff --git a/_maps/configs/nanotrasen_heron.json b/_maps/configs/nanotrasen_heron.json index fbe11a792000..3cdc9821a859 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/nanotrasen/nanotrasen_heron.dmm", + "map_path": "_maps/shuttles/shiptest/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 deleted file mode 100644 index d34cb392f65e..000000000000 --- a/_maps/configs/solgov_inkwell.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "$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 9dc307f7f091..50d7dea915e7 100644 --- a/_maps/configs/syndicate_aegis.json +++ b/_maps/configs/syndicate_aegis.json @@ -18,38 +18,38 @@ ], "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/syndicate/captain", + "outfit": "/datum/outfit/job/captain/syndicate", "officer": true, "slots": 1 }, "Lead Doctor": { - "outfit": "/datum/outfit/job/syndicate/cmo/suns", + "outfit": "/datum/outfit/job/cmo/syndicate/nsv", "slots": 1 }, "Ship Doctor":{ - "outfit": "/datum/outfit/job/syndicate/doctor/suns", + "outfit": "/datum/outfit/job/doctor/syndicate/nsv", "slots": 2 }, "Mechanic": { - "outfit": "/datum/outfit/job/syndicate/engineer", + "outfit": "/datum/outfit/job/engineer/syndicate", "slots": 1 }, "Deck Service Assistant": { - "outfit": "/datum/outfit/job/syndicate/botanist/suns", + "outfit": "/datum/outfit/job/botanist/syndicate/nsv", "slots": 2 }, "Ship Psychologist": { - "outfit": "/datum/outfit/job/syndicate/psychologist/suns", + "outfit": "/datum/outfit/job/psychologist/syndicate/nsv", "slots": 1 }, "Long Term Patient": { - "outfit": "/datum/outfit/job/syndicate/patient", + "outfit": "/datum/outfit/job/prisoner/syndicatepatient", "slots": 2 } }, diff --git a/_maps/configs/syndicate_cybersun_kansatsu.json b/_maps/configs/syndicate_cybersun_kansatsu.json index fbde6dc608d6..8696db8e0359 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": { - "Commander": { - "outfit": "/datum/outfit/job/syndicate/captain/cybersun", + "Captain": { + "outfit": "/datum/outfit/job/captain/syndicate/cybersun", "officer": true, "slots": 1 }, "Intelligence Officer": { - "outfit": "/datum/outfit/job/syndicate/head_of_personnel/cybersun", + "outfit": "/datum/outfit/job/head_of_personnel/syndicate/intel", "officer": true, "slots": 1 }, "Engineer": { - "outfit": "/datum/outfit/job/syndicate/engineer/cybersun", + "outfit": "/datum/outfit/job/engineer/syndicate/cybersun", "slots": 1 }, "Field Agent": { - "outfit": "/datum/outfit/job/syndicate/miner/cybersun", + "outfit": "/datum/outfit/job/miner/syndicate/cybersun", "slots": 2 }, "Junior Agent": { - "outfit": "/datum/outfit/job/syndicate/assistant/cybersun", + "outfit": "/datum/outfit/job/assistant/syndicate/cyberagent", "slots": 2 } }, diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_gorlex_hyena.json index 4e9086139275..6e1fa6ae92ce 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/syndicate/captain/gorlex", + "outfit": "/datum/outfit/job/captain/syndicate/gorlex", "officer": true, "slots": 1 }, "Foreman": { - "outfit": "/datum/outfit/job/syndicate/ce/gorlex", + "outfit": "/datum/outfit/job/ce/syndicate/gorlex", "officer": true, "slots": 1 }, "Mechanic": { - "outfit": "/datum/outfit/job/syndicate/engineer/gorlex", + "outfit": "/datum/outfit/job/engineer/syndicate/gorlex", "slots": 1 }, "Wrecker": { - "outfit": "/datum/outfit/job/syndicate/miner/gorlex", + "outfit": "/datum/outfit/job/miner/syndicate/gorlex", "slots": 2 }, "Junior Agent": { - "outfit": "/datum/outfit/job/syndicate/assistant/gorlex", + "outfit": "/datum/outfit/job/assistant/syndicate/gorlex", "slots": 2 } }, diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json index 5692eaf44a14..da4b9e58a795 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/syndicate/captain/gorlex", + "outfit": "/datum/outfit/job/captain/syndicate/gorlex", "officer": true, "slots": 1 }, "Sergeant": { - "outfit": "/datum/outfit/job/syndicate/hos/gorlex", + "outfit": "/datum/outfit/job/hos/syndicate", "officer": true, "slots": 1 }, "Medic": { - "outfit": "/datum/outfit/job/syndicate/doctor/gorlex", + "outfit": "/datum/outfit/job/doctor/syndicate_komodo", "slots": 1 }, "Mechanic": { - "outfit": "/datum/outfit/job/syndicate/miner/gorlex", + "outfit": "/datum/outfit/job/engineer/syndicate/gorlex", "slots": 1 }, "Trooper": { - "outfit": "/datum/outfit/job/syndicate/security/gorlex", + "outfit": "/datum/outfit/job/security/syndicate/gorlex", "slots": 3 }, "Deck assistant": { - "outfit": "/datum/outfit/job/syndicate/assistant/gorlex", + "outfit": "/datum/outfit/job/assistant/syndicate/gorlex", "slots": 2 }, "Bridge officer": { - "outfit": "/datum/outfit/job/syndicate/head_of_personnel", + "outfit": "/datum/outfit/job/head_of_personnel/syndicate", "slots": 1 } }, diff --git a/_maps/configs/syndicate_lugol.json b/_maps/configs/syndicate_lugol.json index 26599d93a8ee..268769618857 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/syndicate/ce/gec", + "outfit": "/datum/outfit/job/ce/gec", "slots": 1, "officer": true }, - "GEC Engineering": { - "outfit": "/datum/outfit/job/syndicate/engineer/gec", + "GEC Engineer": { + "outfit": "/datum/outfit/job/engineer/gec", "slots": 3 }, - "GEC Atmospherics": { - "outfit": "/datum/outfit/job/syndicate/atmos/gec", + "Atmospheric Technician": { + "outfit": "/datum/outfit/job/atmos/gec", "slots": 3 }, "Beverage Specialist": { - "outfit": "/datum/outfit/job/syndicate/bartender", + "outfit": "/datum/outfit/job/bartender/syndicate", "slots": 1 }, - "GEC Miner": { - "outfit": "/datum/outfit/job/syndicate/miner/gec", + "Shaft Miner": { + "outfit": "/datum/outfit/job/miner/syndicate/gec", "slots": 1 }, "GEC Apprentice": { - "outfit": "/datum/outfit/job/syndicate/assistant/gec", + "outfit": "/datum/outfit/job/assistant/syndicate/gec", "slots": 2 } }, diff --git a/_maps/configs/syndicate_luxembourg.json b/_maps/configs/syndicate_luxembourg.json index 1433f2da547a..d34f20183fae 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/syndicate/quartermaster/donk", + "outfit": "/datum/outfit/job/quartermaster/donk", "slots": 1 }, "Customer Service Representative": { - "outfit": "/datum/outfit/job/syndicate/cargo_tech/donk", + "outfit": "/datum/outfit/job/cargo_tech/donk", "slots": 5 }, "Food and Beverage Specialist": { - "outfit": "/datum/outfit/job/syndicate/bartender", + "outfit": "/datum/outfit/job/bartender/syndicate", "slots": 1 }, "GEC Contracted Engineer": { - "outfit": "/datum/outfit/job/syndicate/engineer/gec", + "outfit": "/datum/outfit/job/engineer/gec", "slots": 1 } }, diff --git a/_maps/configs/syndicate_twinkleshine.json b/_maps/configs/syndicate_twinkleshine.json index e5765b1691dd..2c7a57e1bd66 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/syndicate/captain/twink", + "outfit": "/datum/outfit/job/captain/syndicate/sbc", "officer": true, "slots": 1 }, "Lieutenant": { - "outfit": "/datum/outfit/job/syndicate/hos/twink", + "outfit": "/datum/outfit/job/warden/syndicate/sbc", "officer": true, "slots": 1 }, "Medic": { - "outfit": "/datum/outfit/job/syndicate/paramedic/twink", + "outfit": "/datum/outfit/job/brig_phys/syndicate/sbc", "slots": 2 }, "Engineer": { - "outfit": "/datum/outfit/job/syndicate/engineer/twink", + "outfit": "/datum/outfit/job/engineer/syndicate/sbc", "slots": 2 }, "Operative": { - "outfit": "/datum/outfit/job/syndicate/security/twink", + "outfit": "/datum/outfit/job/security/syndicate/sbc", "slots": 5 }, "Bartender": { - "outfit": "/datum/outfit/job/syndicate/bartender/twink", + "outfit": "/datum/outfit/job/bartender/syndicate/sbc", "slots": 1 }, "Miner": { - "outfit": "/datum/outfit/job/syndicate/miner/twink", + "outfit": "/datum/outfit/job/miner/syndicate/sbc", "slots": 1 }, "Deck Assistant": { - "outfit": "/datum/outfit/job/syndicate/assistant/twink", + "outfit": "/datum/outfit/job/assistant/syndicate/sbc", "slots": 2 } }, diff --git a/_maps/deprecated/Ruins/TheDerelict.dmm b/_maps/deprecated/Ruins/TheDerelict.dmm index 56b16089bb69..0a6b86996b66 100644 --- a/_maps/deprecated/Ruins/TheDerelict.dmm +++ b/_maps/deprecated/Ruins/TheDerelict.dmm @@ -1148,6 +1148,9 @@ "fw" = ( /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/bridge/access) +"fx" = ( +/turf/open/floor/plasteel/airless, +/area/ruin/space/derelict/bridge/access) "fy" = ( /obj/structure/table, /obj/item/assembly/flash/handheld, @@ -1834,6 +1837,9 @@ /obj/item/storage/box/lights/mixed, /turf/open/floor/plating/airless, /area/ruin/space/derelict/singularity_engine) +"in" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/derelict/singularity_engine) "io" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating/airless, @@ -8590,7 +8596,7 @@ dO dP dX dW -dW +in dr iP ay @@ -10385,7 +10391,7 @@ aa cs fv fF -fw +fx cs ga yb @@ -10497,8 +10503,8 @@ aa dk cs fw -fw -fw +fx +fx fR eR gm @@ -10609,9 +10615,9 @@ aa aa aa cs -fw -fw -fw +fx +fx +fx cs eR gn @@ -10723,8 +10729,8 @@ aa aa cs fy -fw -fw +fx +fx fS MI go @@ -10836,8 +10842,8 @@ aa ZB cs fz -fw -fw +fx +fx fS MI go @@ -10949,8 +10955,8 @@ ZB ZB cs fA -fw -fw +fx +fx fS MI go @@ -11062,8 +11068,8 @@ ZB ZB cs fB -fw -fw +fx +fx fS MI gp @@ -11290,10 +11296,10 @@ cs cs cs cs -fw +fx py gq -fw +fx fZ gO fZ @@ -11403,10 +11409,10 @@ cx cx cx cs -fw +fx py -fw -fw +fx +fx fZ gL aa @@ -11629,10 +11635,10 @@ cs cs cs cs -fw -fw -fw -fw +fx +fx +fx +fx cs cs ZB @@ -11742,10 +11748,10 @@ cs fC fC cs -fw +fx gg -fw -fw +fx +fx cs aa ay diff --git a/_maps/deprecated/Ships/nanotrasen_pubby.dmm b/_maps/deprecated/Ships/nanotrasen_pubby.dmm index c9d42c6a8c28..179c7e811e65 100644 --- a/_maps/deprecated/Ships/nanotrasen_pubby.dmm +++ b/_maps/deprecated/Ships/nanotrasen_pubby.dmm @@ -446,6 +446,10 @@ pixel_x = 5; pixel_y = 4 }, +/obj/item/storage/fancy/cigarettes/cigpack_shadyjims{ + pixel_x = -7; + pixel_y = 6 + }, /obj/item/lighter{ pixel_x = -5; pixel_y = 4 diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt index 3d86570f326c..e4f2881948b3 100644 --- a/_maps/map_catalogue.txt +++ b/_maps/map_catalogue.txt @@ -46,10 +46,6 @@ 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: @@ -73,6 +69,10 @@ 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,6 +174,10 @@ 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" @@ -242,6 +246,10 @@ 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" @@ -282,10 +290,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 9)(y = 9)(z = 1) Tags = "Boss Combat Challenge", "Major Loot", "Hazardous", "Inhospitable" - File Name = "_maps\RandomRuins\RockRuins\rockplanet_nomadcrash.dmm" - Size = (x = 58)(y = 48)(z = 1) - Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Hospitable" - SandRuins: File Name = "_maps\RandomRuins\Ruins\whitesands_surface_assaultpodcrash.dmm" @@ -312,6 +316,10 @@ 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" @@ -336,11 +344,6 @@ 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" @@ -391,6 +394,10 @@ 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" @@ -399,10 +406,18 @@ 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" @@ -431,6 +446,10 @@ 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" @@ -488,10 +507,6 @@ 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) @@ -550,7 +565,7 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Tags = "No Combat", "Medium Loot", "Shelter" - Waste Ruins: + Waste Ruins: File name ="_maps\RandomRuins\wasteruins\wasteplanet_clowncrash.dmm" Size = (x = 11)(y = 12)(z = 1) Tags = "No Combat", "Minor Loot", "Shelter" "hospitable" diff --git a/_maps/outpost/elevator_indie.dmm b/_maps/outpost/elevator_indie.dmm deleted file mode 100644 index f692a2918a5b..000000000000 --- a/_maps/outpost/elevator_indie.dmm +++ /dev/null @@ -1,47 +0,0 @@ -//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/indie_space.dmm b/_maps/outpost/indie_space.dmm index e8637075bdcd..5836ab2afcfd 100644 --- a/_maps/outpost/indie_space.dmm +++ b/_maps/outpost/indie_space.dmm @@ -1,1025 +1,831 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"ag" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ +"ac" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/machinery/door/airlock/public{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/disposalpipe/segment{ +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"af" = ( +/obj/structure/curtain/cloth/fancy, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/mono, +/area/outpost/crew) +"ag" = ( +/obj/machinery/door/airlock{ + id_tag = "ob2"; + name = "Stall 2"; dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo/office) -"ah" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/item/toy/figure/bartender{ - pixel_x = -4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/central) +/turf/open/floor/plasteel, +/area/outpost/crew/dorm) "ai" = ( -/turf/open/floor/ship/dirt, -/area/outpost/hallway/central) -"ak" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/structure/chair/office{ + dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"am" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/prison_contraband, -/turf/open/floor/plasteel/patterned/cargo_one, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"ao" = ( +"an" = ( /obj/structure/railing{ - dir = 4 + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/outpost/cargo) "ar" = ( -/obj/machinery/camera/autoname{ - dir = 8 +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/line, +/obj/effect/turf_decal/trimline/opaque/green/line{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"ay" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/structure/sign/poster/official/random{ + pixel_y = -32 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"aB" = ( -/obj/structure/table/wood, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/flashlight/lamp/green{ - pixel_y = 24; - pixel_x = -16 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"aF" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/landmark/ert_outpost_spawn, -/turf/open/floor/plasteel, -/area/outpost/security) -"aI" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/storage) -"aK" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"aO" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/cable/yellow{ +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"aC" = ( +/obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner_techfloor_gray{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"aH" = ( +/obj/effect/turf_decal/corner/opaque/green{ dir = 6 }, -/obj/structure/spider/stickyweb, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"aX" = ( -/obj/structure/closet/crate/trashcart, -/obj/structure/spider/stickyweb, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"aZ" = ( -/obj/structure/chair/sofa/left, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"bb" = ( -/obj/structure/cable/yellow{ - icon_state = "4-9" +/obj/structure/closet/firecloset/wall{ + dir = 8; + pixel_x = 28 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"bg" = ( +/obj/structure/rack, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 }, -/obj/effect/spawner/lootdrop/waste/trash, +/obj/machinery/light/small/broken/directional/north, +/obj/effect/decal/cleanable/dirt, /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 +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"bk" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 1 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"bd" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/item/clipboard, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"bo" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/window/reinforced/tinted{ + dir = 1 }, +/turf/open/floor/grass, +/area/outpost/crew) +"bs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 6 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"bf" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/green{ dir = 1 }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"bt" = ( +/obj/structure/railing/corner{ + dir = 4 }, -/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") +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 4 }, /turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"bq" = ( -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned, /area/outpost/cargo) "bv" = ( -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/corner/opaque/red{ +/obj/structure/railing{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/security) -"bz" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/closed/indestructible/reinforced, -/area/outpost/maintenance/fore) -"bH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /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) -"bJ" = ( +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"bE" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 }, -/obj/effect/spawner/lootdrop/salvage/metal, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/central) -"bK" = ( -/obj/structure/falsewall/reinforced, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"bL" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/structure/sign/poster/random{ - pixel_x = -28 +"bI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"bQ" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance/four, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"bS" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, -/obj/machinery/firealarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/security) -"bY" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ +/area/outpost/vacant_rooms) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ 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) -"ca" = ( -/obj/structure/closet/secure_closet/armory3, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel, -/area/outpost/security) -"cc" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/disposalpipe/junction/yjunction{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"bL" = ( +/obj/structure/rack, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"cf" = ( -/obj/machinery/light/dim/directional/east, +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"cg" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"bT" = ( +/obj/structure/chair/wood/wings{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet, +/area/outpost/crew) +"cc" = ( +/obj/structure/chair/office{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/item/radio/intercom/directional/west, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ck" = ( -/obj/effect/spawner/structure/window/reinforced/indestructable, -/turf/open/floor/plating, -/area/outpost/crew/library) -"cl" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, +/area/outpost/vacant_rooms) +"cg" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/corner/opaque/green{ dir = 10 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"cr" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +"cl" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters{ + dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"cs" = ( -/obj/structure/flora/junglebush, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/central) -"cz" = ( -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"cC" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/external) -"cJ" = ( -/obj/item/radio/intercom/directional/north, -/obj/item/kirbyplants{ - icon_state = "plant-16"; - pixel_x = -13 +/obj/machinery/newscaster/directional/west, +/obj/item/radio/intercom/directional/north{ + pixel_y = 32 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"cK" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/newscaster/directional/east, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"cL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{ - dir = 1 +/area/outpost/crew/dorm) +"cs" = ( +/obj/structure/table, +/obj/item/circuitboard/machine/paystand, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"cx" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/outpost/crew) +"cy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 4 +/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) -"cT" = ( -/obj/structure/sign/painting/library{ - pixel_y = -26 - }, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt/dust, +"cz" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/cargo) +"cC" = ( +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"cO" = ( +/obj/item/radio/intercom/directional/east, /turf/open/floor/wood, -/area/outpost/crew/library) +/area/outpost/crew) "cU" = ( -/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/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"cV" = ( +/obj/machinery/door/airlock{ + id_tag = "ob1"; + name = "Stall 1"; dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/turf/open/floor/plasteel, +/area/outpost/crew/dorm) +"cW" = ( +/obj/effect/turf_decal/box/corners{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"cZ" = ( +/obj/machinery/telecomms/allinone/indestructable{ + id = "Outpost" }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"cV" = ( -/obj/effect/spawner/structure/window/reinforced/indestructable, -/turf/open/floor/plating, -/area/outpost/cargo/office) -"cY" = ( -/obj/structure/railing{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"da" = ( +/obj/effect/turf_decal/box/corners{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 10 +/obj/structure/railing/corner{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 1 +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 4 }, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/patterned/grid, /area/outpost/cargo) -"de" = ( -/obj/structure/cable/yellow{ - icon_state = "6-8" +"dh" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel, +/area/outpost/crew) +"dq" = ( +/obj/machinery/door/window/brigdoor/westleft, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"dg" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + pixel_x = -1 }, -/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) -"dj" = ( -/obj/machinery/light/dim/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned, +/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) -"ds" = ( -/obj/structure/flora/junglebush/b, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"dv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +"du" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew) +"dC" = ( +/obj/machinery/cryopod{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown/full, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"dz" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/corner_techfloor_grid/diagonal, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/tech/grid, +/area/outpost/crew/dorm) "dD" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/outpost/crew/janitor) -"dG" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"dK" = ( -/obj/item/trash/can/food/beans{ - pixel_x = -16; - pixel_y = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/trash/can/food/beans{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/trash/can/food/beans{ - pixel_y = -2; - pixel_x = 2 - }, -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = -9; - pixel_y = 18 - }, -/turf/open/floor/plating/asteroid, -/area/outpost/maintenance/central) -"dP" = ( -/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 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 1 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"dT" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"dH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/wood, -/area/outpost/crew/bar) -"dU" = ( -/obj/effect/decal/cleanable/crayon{ - icon_state = "electricdanger"; - pixel_y = -28 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"dW" = ( -/obj/effect/spawner/lootdrop/waste/trash, -/obj/effect/turf_decal/steeldecal/steel_decals7{ +/area/outpost/crew) +"dK" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"dS" = ( +/obj/effect/turf_decal/corner/opaque/red{ dir = 9 }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"dW" = ( +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/corner/opaque/black{ dir = 6 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"dY" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/decal/fakelattice, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/security) -"dZ" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/effect/turf_decal/corner/opaque/green{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/mouse/brown, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"eb" = ( -/obj/item/toy/sprayoncan, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"ed" = ( -/obj/structure/disposalpipe/trunk/multiz{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"dY" = ( +/obj/structure/window/reinforced{ dir = 4 }, +/obj/machinery/newscaster/directional/north{ + pixel_y = 32 + }, +/obj/structure/filingcabinet/double, /turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"eh" = ( -/obj/structure/railing/wood{ - dir = 10; - color = "#792f27" +/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/structure/cable/yellow{ - icon_state = "1-4" +/turf/open/floor/wood, +/area/outpost/crew) +"eg" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 }, -/obj/effect/turf_decal/siding/wood/corner{ +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ 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) +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) "em" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/maintenance/central) -"ep" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, /turf/open/floor/plasteel, -/area/outpost/hallway/port) +/area/outpost/hallway/central) "eq" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"et" = ( -/obj/machinery/photocopier{ - pixel_x = 3; - pixel_y = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, -/area/outpost/crew/library) -"ey" = ( -/obj/machinery/door/firedoor/closed, -/obj/structure/barricade/wooden/crude, -/obj/machinery/door/airlock/mining{ - req_access = list("106") +/area/outpost/vacant_rooms) +"es" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/turf/open/floor/wood, +/area/outpost/crew) +"et" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"ex" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/corner/opaque/green/three_quarters{ dir = 8 }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"ey" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"eB" = ( -/obj/structure/cable/yellow{ - icon_state = "6-8" +/area/outpost/cargo) +"ez" = ( +/obj/machinery/door/airlock{ + id_tag = "ob3"; + name = "Bathroom" }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 5 +/turf/open/floor/plasteel/tech, +/area/outpost/crew) +"eL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/item/kirbyplants{ + icon_state = "plant-03"; + name = "Dave" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"eC" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer{ - pixel_y = 13; - layer = 3 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = -4 +/obj/structure/sign/poster/contraband/inteq_nt{ + pixel_y = 32 }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"eI" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"fc" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/disposalpipe/junction/flip{ + dir = 1 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"eR" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"eU" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"eW" = ( -/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) -"fb" = ( -/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 +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/effect/landmark/observer_start, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"fg" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/area/outpost/hallway/central) +"fh" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/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) +/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/structure/cable/yellow{ - icon_state = "2-4" +/obj/machinery/camera/autoname{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 10 }, -/obj/structure/sign/plaques/kiddie/library{ - pixel_y = 26 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"fv" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/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/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/item/radio/intercom/directional/north{ + pixel_y = 32; + pixel_x = -5 }, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, -/area/outpost/crew/library) -"fl" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +/area/outpost/crew) +"fD" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"fm" = ( -/obj/machinery/conveyor{ +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"fI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 8; + pixel_y = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ dir = 4; - id = "outpost2" + pixel_y = 1 }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"fn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/grille/indestructable, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"fp" = ( -/obj/structure/cable/yellow{ - icon_state = "6-9" +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"fM" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 1 +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"fs" = ( -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 1 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/storage) -"fw" = ( -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 9 +/area/outpost/vacant_rooms) +"fQ" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 }, -/obj/effect/spawner/lootdrop/waste/trash, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"fx" = ( -/obj/effect/decal/cleanable/glass/strange, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"fV" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/turf_decal/box/corners, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/central) -"fB" = ( -/obj/structure/chair/comfy/brown, -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"fE" = ( -/obj/structure/noticeboard{ - name = "refinery notice board"; - dir = 8; - pixel_y = 0; - pixel_x = 26 +/area/outpost/vacant_rooms) +"fZ" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/window/reinforced, +/obj/item/clipboard{ + pixel_y = -3; + pixel_x = -3 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/patterned, +/obj/item/pen{ + pixel_y = -4; + pixel_x = -4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/outpost/cargo) -"fH" = ( -/obj/structure/closet/secure_closet/armory1, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel, -/area/outpost/security) -"fI" = ( -/obj/effect/spawner/structure/window/reinforced/indestructable, -/turf/open/floor/plating, -/area/outpost/hallway/central) -"fK" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/disposalpipe/segment{ - dir = 6 +"ga" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/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, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"gb" = ( +/obj/effect/turf_decal/siding/thinplating{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"fL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"fN" = ( -/obj/structure/railing{ - dir = 9 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/machinery/conveyor_switch{ - id = "outpost2"; - layer = 3.11; - pixel_y = 9; - pixel_x = -2 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"fO" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"fP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"fR" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/effect/turf_decal/corner/opaque/black, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"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/door/airlock{ + name = "Cryogenics"; + dir = 4 }, -/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) +/turf/open/floor/plasteel/tech, +/area/outpost/crew/dorm) "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) -"gi" = ( -/obj/structure/flora/grass/jungle, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/central) -"gj" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned, +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel/patterned/grid, /area/outpost/cargo) -"gq" = ( -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 9 +"gm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) "gr" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"gs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/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/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"gy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/wood, +/area/outpost/crew) +"gz" = ( /obj/effect/turf_decal/corner/opaque/black{ - dir = 1 + dir = 5 }, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"gv" = ( -/obj/structure/grille/indestructable, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/industrial/warning/dust{ +/area/outpost/hallway/central) +"gF" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"gJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/industrial/warning/dust, -/obj/effect/turf_decal/steeldecal/steel_decals_central7, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"gx" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable/yellow{ +/obj/machinery/newscaster/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"gK" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable{ icon_state = "0-2" }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 5 +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"gz" = ( -/obj/machinery/vending/cola/random, -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 1 +/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 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/central) -"gA" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/structure/mirror{ + pixel_x = -28 }, -/obj/structure/cable/yellow{ - icon_state = "2-8" +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"gU" = ( +/obj/structure/railing/corner{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"gB" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, -/obj/machinery/door/window{ - req_access = list("101") - }, -/obj/machinery/door/window{ - req_access = list("101"); +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/effect/turf_decal/floordetail/tiled, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only, /turf/open/floor/plasteel/tech, -/area/outpost/security) -"gC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 8 +/area/outpost/cargo) +"gX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/storage) -"gD" = ( -/obj/structure/chair{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"hd" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/landmark/ert_outpost_spawn, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"gE" = ( -/obj/structure/table, -/obj/machinery/paystand{ - pixel_y = 8 +/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/patterned/cargo_one, +/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) -"gI" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, +"hG" = ( +/obj/machinery/light/directional/east, +/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/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"gL" = ( -/obj/structure/railing, +/area/outpost/hallway/central) +"hI" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 + dir = 4 }, -/turf/open/floor/plasteel/patterned, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, /area/outpost/cargo) -"gO" = ( -/obj/effect/turf_decal/industrial/warning{ +"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/industrial/warning{ +/obj/effect/turf_decal/siding/thinplating{ dir = 4 }, /obj/machinery/door/firedoor/border_only{ @@ -1028,7431 +834,4965 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/structure/cable/yellow{ - 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/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/airlock{ - dir = 4; - name = "Janitor Closet" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/airlock/public/glass{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/janitor) -"gP" = ( -/obj/structure/filingcabinet/double, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"gX" = ( -/obj/structure/bed/pod, -/obj/item/bedsheet, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"ha" = ( -/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) -"hc" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/brown/full, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/obj/machinery/door/poddoor/preopen{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"im" = ( +/obj/effect/turf_decal/corner/opaque/green/three_quarters{ dir = 8 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"he" = ( -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"hi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/item/kirbyplants/random, +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"hk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"iw" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"hq" = ( -/obj/structure/bookcase/random, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"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/structure/disposalpipe/segment, /obj/machinery/camera/autoname{ - dir = 10 + dir = 5 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"iB" = ( /obj/effect/turf_decal/corner/opaque/black{ dir = 5 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 10 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/firealarm/directional/east, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"hE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, -/area/outpost/crew/bar) -"hH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/brown/full, -/turf/open/floor/plasteel/patterned, +/area/outpost/vacant_rooms) +"iF" = ( +/obj/structure/railing, +/turf/open/floor/plasteel/tech, /area/outpost/cargo) -"hI" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/security) -"hK" = ( -/obj/structure/spider/stickyweb, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"hL" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 6 - }, -/turf/open/floor/plasteel/patterned, +"iG" = ( +/turf/open/floor/plasteel/elevatorshaft, /area/outpost/cargo) -"hM" = ( -/obj/effect/landmark/outpost/elevator_machine{ - shaft = "1" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +"iI" = ( +/obj/effect/turf_decal/spline/fancy/wood{ + dir = 8 }, -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"hV" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/port) -"hW" = ( -/obj/machinery/door/airlock/maintenance, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"iL" = ( +/obj/effect/turf_decal/box/corners{ dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/outpost/maintenance/fore) -"hZ" = ( -/obj/structure/flora/grass/jungle, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/obj/structure/closet/crate, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"iQ" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/central) -"ic" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 + dir = 4 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"ig" = ( -/obj/structure/flora/grass/jungle, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"ih" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/stand_clear{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"iV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/camera/autoname{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"iY" = ( +/obj/structure/window/reinforced/tinted{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"im" = ( -/obj/machinery/light/dim/directional/north, -/turf/open/floor/ship/dirt/dark, -/area/outpost/hallway/port) -"in" = ( -/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/grass, +/area/outpost/crew) +"jd" = ( +/obj/effect/turf_decal/corner/opaque/green/three_quarters{ + dir = 8 }, +/obj/machinery/vending/sovietsoda, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"is" = ( -/obj/structure/closet/crate/trashcart, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"iv" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +"je" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"iw" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, -/area/outpost/crew/library) -"ix" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, +/area/outpost/crew) +"jk" = ( +/obj/effect/turf_decal/box, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"jl" = ( /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"iz" = ( -/obj/structure/grille/indestructable, -/obj/structure/cable/yellow, -/obj/structure/cable/yellow{ - icon_state = "0-4" +/turf/open/floor/plasteel/stairs{ + dir = 1 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"iA" = ( -/obj/item/kirbyplants{ - icon_state = "plant-19" +/area/outpost/hallway/central) +"jn" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/cargo_one, +/obj/structure/closet/cardboard, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"jp" = ( +/obj/effect/landmark{ + name = "Primary Cargo Shaft" + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/cargo) +"jx" = ( +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"jC" = ( +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"jD" = ( +/obj/machinery/newscaster/directional/south, +/turf/open/floor/wood, +/area/outpost/crew) +"jH" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/tech/techmaint, /area/outpost/vacant_rooms) -"iG" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral, +"jI" = ( +/obj/machinery/newscaster/directional/east, +/turf/open/floor/wood, +/area/outpost/crew) +"jM" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 + }, +/obj/machinery/light/directional/east, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"iH" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/area/outpost/hallway/central) +"jN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/siding/thinplating{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/area/outpost/crew/bar) -"iI" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"iM" = ( -/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) -"iQ" = ( -/obj/item/trash/can/food/beans{ - pixel_x = 5; - pixel_y = 5 +/obj/structure/cable{ + icon_state = "4-8" }, -/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/airlock/public/glass{ + dir = 4 }, -/obj/item/trash/can/food/beans{ - pixel_y = 1 +/obj/machinery/door/poddoor/preopen{ + dir = 4 }, -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = 13; - pixel_y = -9 +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"jS" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + pixel_x = -1 }, -/turf/open/floor/plating/asteroid, -/area/outpost/maintenance/central) -"iS" = ( -/mob/living/simple_animal/mouse/brown, -/obj/effect/turf_decal/steeldecal/steel_decals6, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"iT" = ( -/obj/machinery/mineral/unloading_machine{ +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ dir = 1 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"iU" = ( -/obj/machinery/paystand{ - pixel_y = 8 - }, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/storage) -"iV" = ( -/obj/effect/spawner/structure/window/reinforced/indestructable, -/turf/open/floor/plating, -/area/outpost/vacant_rooms/office) -"iX" = ( -/obj/item/radio/intercom/directional/west, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood/mahogany, -/area/outpost/crew/bar) -"iY" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"ja" = ( -/obj/structure/falsewall/reinforced, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"jb" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"jU" = ( +/obj/structure/table, +/obj/machinery/door/window{ + dir = 8 }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "electricdanger"; - pixel_y = 26 +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 10 +/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 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 5 +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"kb" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"kg" = ( +/obj/machinery/computer/cryopod/directional/west, +/obj/structure/table, +/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ + dir = 9 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"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/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, +/obj/machinery/newscaster/directional/north{ + pixel_y = 32 + }, /turf/open/floor/plasteel, +/area/outpost/crew/dorm) +"ki" = ( +/obj/structure/chair/office, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew/dorm) +"ks" = ( +/turf/open/floor/plasteel/elevatorshaft, /area/outpost/hallway/central) -"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/machinery/door/airlock/public{ - id_tag = "out1" +"kA" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/green/three_quarters{ dir = 1 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"kF" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 }, -/obj/machinery/door/firedoor/border_only, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/storage) -"js" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/industrial/warning/dust, -/obj/effect/turf_decal/industrial/warning/dust{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"kH" = ( +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"kI" = ( +/obj/structure/curtain/cloth/fancy, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"jt" = ( +/turf/open/floor/plasteel/mono, +/area/outpost/crew) +"kJ" = ( /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/light/floor{ + bulb_colour = "#FFDDBB"; + bulb_power = 0.3 }, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"ju" = ( -/obj/machinery/vending/boozeomat{ - pixel_y = 32; - density = 0 +/turf/open/floor/carpet, +/area/outpost/crew) +"kP" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1; + pixel_x = -1 }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"jx" = ( -/obj/item/trash/can/food/beans{ - pixel_x = -5 +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"kQ" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/effect/decal/cleanable/generic, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid, -/area/outpost/maintenance/central) -"jz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/steeldecal/steel_decals3, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"jC" = ( -/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/machinery/door/airlock/public/glass, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"kR" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners, /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" +/area/outpost/vacant_rooms) +"kW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 }, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"kY" = ( +/obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/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 + }, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"lk" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 10 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"jI" = ( -/obj/machinery/door/airlock{ - dir = 1; - name = "Lounge" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +"lp" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/bar) -"jJ" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"jM" = ( -/obj/effect/spawner/lootdrop/chicken, -/turf/open/floor/ship/dirt, -/area/outpost/hallway/port) -"jP" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"jT" = ( -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"jU" = ( -/obj/structure/table/wood, -/obj/machinery/computer/bookmanagement, -/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment, /turf/open/floor/wood, -/area/outpost/crew/library) -"jX" = ( -/obj/structure/chair/pew/right{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 +/area/outpost/crew) +"ls" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"kb" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/camera/autoname{ - dir = 8 +"lx" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/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 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"kf" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"kj" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/landmark/outpost/elevator_machine{ - shaft = "1" - }, -/obj/machinery/elevator_call_button{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/railing{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"kk" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"lC" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 }, -/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) -"kl" = ( -/obj/effect/turf_decal/industrial/warning{ - 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, +/area/outpost/vacant_rooms) +"lK" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/door/window{ - req_access = list("101"); +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"lP" = ( +/obj/structure/railing/corner{ dir = 8 }, -/obj/machinery/door/window{ - req_access = list("101"); - dir = 4 +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 }, -/obj/effect/turf_decal/floordetail/tiled, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/camera/autoname{ + dir = 8 }, /turf/open/floor/plasteel/tech, -/area/outpost/security) -"ko" = ( -/obj/item/radio/intercom/directional/east, -/obj/structure/table/wood, -/obj/item/toy/cards/deck/tarot{ - pixel_x = 5; - pixel_y = -2 +/area/outpost/cargo) +"lS" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen{ + dir = 10 }, -/obj/item/reagent_containers/food/drinks/mug/tea{ - pixel_x = -7; - pixel_y = -2 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"kp" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/salvage_laser, -/obj/effect/spawner/lootdrop/salvage_capacitor, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"kq" = ( -/obj/machinery/conveyor/auto{ - dir = 6; - id = "outpost3" +/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 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"kr" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 8; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"lX" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"ks" = ( -/turf/open/floor/plasteel/elevatorshaft, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"ku" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ +"lZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"kv" = ( -/obj/machinery/camera/autoname{ +/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/machinery/light/directional/north, +/obj/structure/window/reinforced, +/obj/structure/table/wood, +/obj/machinery/vending/boozeomat, +/turf/open/floor/carpet, +/area/outpost/crew) +"mp" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/confetti, /turf/open/floor/plasteel, -/area/outpost/security) -"kx" = ( -/obj/structure/table, -/obj/effect/turf_decal/floordetail/tiled, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"kz" = ( -/obj/structure/table, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 1 +/area/outpost/vacant_rooms) +"ms" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/radio/intercom/directional/west, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms/office) -"kA" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" +/area/outpost/hallway/central) +"mt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"kB" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" + dir = 5 }, -/obj/effect/turf_decal/industrial/stand_clear{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"mz" = ( +/obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/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/scrubbers/hidden/layer4{ + dir = 6 }, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"kK" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "2-8" +/area/outpost/vacant_rooms) +"mB" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/structure/disposalpipe/junction/yjunction{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-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{ +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"mC" = ( +/turf/open/space/basic, +/area/space) +"mF" = ( +/obj/structure/window/reinforced{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/black{ +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "1-8" +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"kO" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/newscaster/directional/north{ + pixel_y = 32 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"kQ" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/light/small/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 +/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, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/camera/autoname{ + dir = 9 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"mL" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"kR" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 +/obj/structure/closet/emcloset/wall{ + dir = 4; + pixel_x = -28 }, -/obj/item/radio/intercom/directional/east, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"kS" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +"mO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"mQ" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"kU" = ( -/obj/machinery/camera/autoname{ +/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 }, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/storage) -"lh" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"lk" = ( -/obj/structure/disposalpipe/segment{ +/area/outpost/vacant_rooms) +"nd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"nf" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew) +"ng" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, -/area/outpost/crew/library) -"ln" = ( -/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{ +/area/outpost/crew) +"np" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 + }, +/obj/structure/chair{ dir = 1 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"lr" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +"ns" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"ls" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/area/outpost/hallway/central) +"nw" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/outpost/crew) +"nz" = ( +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"nE" = ( +/obj/structure/chair/wood/wings{ + dir = 8 }, +/turf/open/floor/carpet, +/area/outpost/crew) +"nI" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 + }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"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/foamedmetal, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"lD" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/siding/wood{ +"nK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"lG" = ( -/obj/item/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/light/dim/directional/west, -/obj/machinery/camera/autoname{ - dir = 6 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"nM" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/corner/opaque/black{ dir = 6 }, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"lH" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +"nO" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/end{ dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/decal/cleanable/wrapping{ - pixel_y = 11; - pixel_x = 3 +/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 }, +/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/library) -"lM" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"lN" = ( -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"lV" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, +/area/outpost/crew) +"oe" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"oi" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/trunk, +/obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"lX" = ( -/obj/structure/rack, -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ +/area/outpost/cargo) +"oq" = ( +/obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"mb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 }, -/obj/effect/turf_decal/corner/opaque/brown/full, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"me" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"or" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"mf" = ( -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/storage) -"mi" = ( -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/structure/disposalpipe/junction/flip{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"mk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +"ov" = ( +/obj/structure/chair/wood/wings, +/turf/open/floor/carpet, +/area/outpost/crew) +"oz" = ( +/obj/structure/cable{ + 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/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"oF" = ( +/obj/structure/chair/office{ dir = 4 }, +/obj/item/radio/intercom/directional/west, +/obj/machinery/camera/autoname{ + dir = 6 + }, /turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"mm" = ( -/obj/machinery/holopad/emergency/bar, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"mo" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/crew/library) -"mp" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" +"oR" = ( +/obj/structure/toilet{ + pixel_y = 13 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/machinery/newscaster/directional/east, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel, +/area/outpost/cargo) +"oV" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/structure/disposalpipe/junction{ - dir = 1 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"pe" = ( +/obj/structure/railing{ + dir = 10 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"pl" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 10 }, +/obj/structure/table, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"mq" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "2-4" +"pm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 8; + pixel_y = 1 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"pt" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"pw" = ( +/obj/structure/table, +/obj/item/radio/intercom/directional/south, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"mr" = ( +"py" = ( +/obj/structure/railing{ + dir = 8 + }, /obj/structure/railing{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 9 +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 5 +/turf/open/floor/plasteel/stairs{ + dir = 1 }, -/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"ms" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/sign/directions/supply{ - pixel_y = 21; +"pA" = ( +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"pD" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "outsmall2"; dir = 4 }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 +/obj/structure/window/reinforced/fulltile/indestructable, +/turf/open/floor/plating, +/area/outpost/crew) +"pF" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"pG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, +/obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"mx" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/pill/happy, -/obj/item/pen{ - pixel_y = 3; - pixel_x = 5 +/area/outpost/vacant_rooms) +"pO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"mA" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 6 }, -/obj/structure/sign/number/random, -/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/outpost/crew) +"pP" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/north, /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{ +/area/outpost/crew) +"pV" = ( +/obj/structure/chair/greyscale{ dir = 1 }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/airlock/mining{ - req_access = list("106") +/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 + }, +/obj/effect/turf_decal/industrial/stand_clear, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 1 }, /turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"mC" = ( -/turf/open/space/basic, -/area/space) -"mD" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/area/outpost/cargo) +"qc" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/closed/indestructible/reinforced, -/area/outpost/maintenance/fore) -"mE" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable/yellow{ - icon_state = "0-2" +/obj/structure/window/reinforced{ + dir = 1 }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/tech/techmaint, /area/outpost/cargo) -"mM" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"mN" = ( +"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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/storage) -"mT" = ( -/obj/structure/table, -/obj/item/trash/can/food/beans{ - pixel_x = -4 +/turf/open/floor/plasteel/stairs{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"mV" = ( -/obj/structure/cable/yellow{ - icon_state = "6-9" +/area/outpost/hallway/central) +"qH" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -13 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"mZ" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" +/obj/structure/mirror{ + pixel_x = -28 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"qP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"qQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/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/segment{ + dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"na" = ( -/obj/structure/falsewall/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plating, -/area/outpost/crew/bar) -"nb" = ( -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/structure/chair{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 }, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"nc" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/corner/opaque/neutral, +/area/outpost/hallway/central) +"qT" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"nd" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"ni" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/loading, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"nj" = ( -/obj/structure/railing/corner, -/obj/effect/turf_decal/industrial/loading{ +/area/outpost/vacant_rooms) +"qZ" = ( +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"nl" = ( -/obj/effect/turf_decal/industrial/caution, -/obj/machinery/light/dim/directional/south, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 10 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"no" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/donkpockets, -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/plasteel/mono, -/area/outpost/vacant_rooms) -"np" = ( -/obj/structure/grille/indestructable, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"nr" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"nt" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/table_bell{ - pixel_x = 6; - pixel_y = -3 +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"nv" = ( -/obj/structure/railing/corner{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 6 +/obj/machinery/door/airlock/wood{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"re" = ( +/obj/effect/turf_decal/box/corners{ dir = 8 }, -/turf/open/floor/plasteel/patterned, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/grid, /area/outpost/cargo) -"nz" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"nH" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/storage) -"nK" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +"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/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"nM" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"rn" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen{ dir = 5 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"nN" = ( -/obj/structure/chair{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/item/toy/figure/captain, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"nT" = ( -/obj/item/radio/intercom/directional/south, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel, +/area/outpost/crew/dorm) +"rt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/libraryscanner, +/obj/effect/decal/cleanable/dirt/dust, /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) -"nW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/greenglow, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/area/outpost/crew) +"ry" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"nZ" = ( -/obj/effect/decal/cleanable/food/egg_smudge, -/obj/effect/turf_decal/steeldecal/steel_decals10, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"oc" = ( -/obj/structure/reagent_dispensers/beerkeg, -/obj/effect/turf_decal/corner/transparent/brown/full, -/turf/open/floor/plasteel, -/area/outpost/crew/bar) -"oe" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"rB" = ( +/obj/structure/railing{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/turf/open/floor/grass, +/area/outpost/crew) +"rD" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"ol" = ( -/obj/item/kirbyplants{ - icon_state = "plant-22" +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/port) -"om" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/steeldecal/steel_decals9{ +/obj/machinery/door/airlock/public/glass{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/tech, /area/outpost/hallway/central) -"op" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/loading{ +"rE" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/dark, +/area/outpost/operations) +"rF" = ( +/obj/structure/railing{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs, /area/outpost/cargo) -"or" = ( -/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) -"ox" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/holosign/barrier/infinite{ - max_integrity = 500 +"rG" = ( +/obj/structure/rack, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"rK" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, -/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"oy" = ( -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 6 +/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 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"rV" = ( +/obj/structure/table, +/obj/machinery/newscaster/directional/north{ + pixel_y = 32 }, -/obj/effect/spawner/lootdrop/waste/trash, +/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/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"oD" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"oN" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/light/dim/directional/south, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 8; + pixel_y = 1 }, -/obj/structure/disposalpipe/junction/flip{ +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, +/obj/machinery/newscaster/directional/south, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"oX" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" +/area/outpost/vacant_rooms) +"sa" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/item/trash/semki, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"pb" = ( -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"ph" = ( -/turf/open/floor/ship/dirt/dark, -/area/outpost/hallway/port) -"pm" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"sd" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/corner{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"po" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/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) +"sk" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/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/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"sm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"sn" = ( +/obj/effect/turf_decal/corner/opaque/green/three_quarters, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 8 }, -/obj/item/radio/intercom/directional/south, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"pr" = ( -/obj/effect/spawner/structure/window/reinforced/indestructable, -/turf/open/floor/plating, -/area/outpost/vacant_rooms) -"pt" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/paper_bin{ - pixel_x = 4; - pixel_y = -4 +"sr" = ( +/obj/effect/landmark/outpost/elevator{ + shaft = "main" }, -/obj/item/pen/fourcolor{ - pixel_x = 3; - pixel_y = -2 +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/hallway/central) +"su" = ( +/obj/structure/railing, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"sv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/wood, -/area/outpost/crew/library) -"pv" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/area/outpost/crew) +"sB" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, +/obj/machinery/door/airlock/public/glass, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"pA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/glass, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"pE" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" +/area/outpost/vacant_rooms) +"sC" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 6 +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 }, -/obj/structure/cable/yellow{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"sG" = ( +/obj/structure/cable{ 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) -"pF" = ( -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew/dorm) +"sH" = ( +/obj/effect/turf_decal/spline/fancy/wood{ + 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) -"pJ" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"pM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/storage) -"pN" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/neutral{ +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"sI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"pQ" = ( -/turf/open/floor/ship/dirt, -/area/outpost/hallway/port) -"pR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"pU" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"pW" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/spider/stickyweb, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"qa" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable/yellow{ - icon_state = "0-2" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"sL" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"qk" = ( -/obj/item/reagent_containers/pill/floorpill, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"qo" = ( -/obj/machinery/newscaster/directional/west, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/box/corners{ 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" +/obj/structure/sign/poster/contraband/inteq_gec{ + pixel_x = -32 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/tech/techmaint, /area/outpost/vacant_rooms) -"qq" = ( -/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 +"sO" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 10 }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"qw" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +"sX" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"qz" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"qD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/turf_decal/steeldecal/steel_decals6{ - dir = 5 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"qG" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" +"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/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/junction/flip{ +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"ti" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/turf/open/floor/carpet, +/area/outpost/crew) +"tr" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet, +/area/outpost/crew) +"tv" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"tB" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/area/outpost/crew/bar) -"qH" = ( -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"qJ" = ( -/obj/structure/chair/wood{ - dir = 4 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/public/glass, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"qL" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"qM" = ( -/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/plasteel/tech, +/area/outpost/vacant_rooms) +"tC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/airlock{ + name = "Cryogenics" }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"qS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/turf/open/floor/plasteel, +/area/outpost/crew/dorm) +"tH" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"qT" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/poddoor/ert, +/obj/machinery/door/airlock/grunge{ + req_access_txt = "109" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/turf/closed/indestructible/reinforced, +/area/outpost/operations) +"tK" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"tL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/outpost/crew) +"tU" = ( +/obj/machinery/light/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"qZ" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +"tZ" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, /obj/structure/disposalpipe/segment{ - dir = 4 + 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/hallway/central) -"rb" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 +/area/outpost/vacant_rooms) +"uc" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"uv" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"rd" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"rh" = ( -/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) -"ri" = ( -/obj/structure/flora/grass/jungle, -/obj/machinery/light/dim/directional/north, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"rj" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +"uy" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 }, -/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, +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/east, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"rm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"rs" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 10 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"rt" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"ru" = ( -/obj/machinery/light/dim/directional/west, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, +"uF" = ( +/turf/open/floor/wood, +/area/outpost/crew) +"uG" = ( /obj/effect/turf_decal/siding/wood{ - dir = 4 + dir = 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) -"ry" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ +/area/outpost/crew) +"uL" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"uQ" = ( +/obj/structure/urinal{ + pixel_y = 32 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"uW" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"rA" = ( -/obj/structure/table/wood, -/obj/item/radio/intercom/table{ - dir = 4 +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 }, -/turf/open/floor/wood/mahogany, -/area/outpost/crew/bar) -"rD" = ( -/obj/structure/disposalpipe/segment{ - 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/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{ +/obj/effect/turf_decal/corner/opaque/green{ dir = 5 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"rI" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 +"ve" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"rK" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"vf" = ( +/obj/structure/chair/wood/wings{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/machinery/newscaster/directional/west, +/obj/machinery/camera/autoname{ dir = 1 }, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"vn" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/end{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"vr" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 + }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"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) -"rO" = ( -/obj/structure/chair/pew/left{ +"vu" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ dir = 8 }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"vv" = ( +/obj/machinery/firealarm/directional/south, /obj/effect/turf_decal/corner/opaque/green{ - dir = 6 + dir = 10 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"rP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +"vL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"vT" = ( +/obj/effect/turf_decal/corner/opaque/green/three_quarters, +/obj/structure/chair{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/item/radio/intercom/directional/south, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"rS" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/area/outpost/hallway/central) +"vV" = ( +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 28 }, -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/wrapping, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"rY" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"rZ" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/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) -"sb" = ( -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/corner/opaque/red{ +"wm" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/security) -"sc" = ( -/obj/structure/flora/rock, -/obj/structure/flora/rock, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"sg" = ( -/obj/structure/railing{ +/obj/effect/turf_decal/industrial/caution{ dir = 4 }, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 9 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"si" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel, +/area/outpost/crew/dorm) +"wn" = ( +/obj/structure/cable{ + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"sk" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"sm" = ( -/obj/structure/flippedtable{ - dir = 4 +"wr" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 6; + pixel_x = 6 }, -/obj/effect/turf_decal/box, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/item/paper_bin/carbon{ + pixel_y = 1; + pixel_x = -8 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/techfloor{ +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"wx" = ( +/obj/machinery/power/smes/magical{ + output_level = 200000 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/outpost/operations) +"wB" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"sn" = ( -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"so" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Restroom" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/dorm) +"wF" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/outpost/crew) +"wH" = ( /obj/structure/rack, -/obj/machinery/light/dim/directional/west, -/obj/item/reagent_containers/food/drinks/waterbottle, -/turf/open/floor/plasteel/mono, -/area/outpost/storage) -"sr" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/turf_decal/steeldecal/steel_decals1, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"st" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/trimline/opaque/green/end{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/outpost/security) -"sx" = ( -/obj/machinery/mineral/processing_unit{ - input_dir = 8; - output_dir = 1 +/obj/structure/sign/poster/official/random{ + pixel_y = 32 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"sz" = ( -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"wL" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/vacant_rooms) +"wR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"sB" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/office{ - dir = 4 +"xa" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/confetti, /turf/open/floor/wood, -/area/outpost/crew/library) -"sG" = ( -/obj/structure/toilet{ - dir = 8; - pixel_y = 0; - pixel_x = 8 +/area/outpost/crew) +"xc" = ( +/obj/structure/railing{ + dir = 9 }, -/obj/effect/turf_decal/borderfloor/full, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 1 +/obj/effect/turf_decal/industrial/warning/corner, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"xi" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/effect/turf_decal/floordetail/pryhole, +/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/maintenance/fore) -"sH" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/area/outpost/vacant_rooms) +"xm" = ( +/obj/effect/turf_decal/box, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"xn" = ( +/obj/structure/rack, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"sK" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"xo" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/floordetail/tiled, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"sO" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/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" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"xs" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"xy" = ( +/obj/structure/table, +/obj/machinery/newscaster/directional/north{ + pixel_y = 32 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/corner/opaque/green/three_quarters{ dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "4-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 }, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"xW" = ( +/obj/structure/chair/wood/wings{ dir = 4 }, -/obj/machinery/door/airlock{ +/obj/machinery/button/door{ dir = 4; - name = "Library" + pixel_y = 7; + pixel_x = -38; + id = "outsmall1"; + name = "window shutters" }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/carpet, +/area/outpost/crew) +"ya" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/library) -"sQ" = ( -/obj/structure/grille/indestructable, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"sU" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 6 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/tech, /area/outpost/cargo) -"ta" = ( -/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" +"yg" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"tc" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/obj/structure/chair{ + dir = 8 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 +/obj/structure/disposalpipe/segment{ + dir = 5 }, +/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"td" = ( -/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) -"th" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +"yh" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"tk" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/wood, +/area/outpost/crew) +"yj" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/spline/fancy/wood{ + dir = 6 }, -/obj/effect/turf_decal/corner_techfloor_gray{ +/turf/open/floor/carpet/royalblack, +/area/outpost/vacant_rooms) +"yl" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen{ dir = 5 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"tp" = ( -/obj/structure/cable/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/crew/dorm) +"yp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner_techfloor_gray{ +/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 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"tq" = ( -/obj/structure/railing/corner{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/plasteel/mono, +/area/outpost/crew) +"yu" = ( +/obj/effect/turf_decal/corner/opaque/black{ dir = 9 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"ts" = ( -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 5 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"tt" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/decal/fakelattice, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/security) -"tv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/techfloor{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"tx" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/newscaster/directional/south, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 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) -"ty" = ( -/obj/structure/table/wood, -/obj/effect/spawner/lootdrop/donut, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"tC" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"tF" = ( -/obj/structure/chair{ +"yy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/decal/cleanable/blood/gibs{ - name = "old bloody vomit" - }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"yK" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"tH" = ( -/obj/structure/sink/greyscale{ - dir = 8; - pixel_x = 13 +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"yM" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 }, -/obj/structure/mirror{ - pixel_x = 26; - pixel_y = -4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"yV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/borderfloor/full, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 8 +/obj/machinery/camera/autoname{ + dir = 1 }, -/obj/effect/turf_decal/floordetail/pryhole, -/turf/open/floor/plasteel, -/area/outpost/maintenance/fore) -"tI" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/donkpockets, -/obj/effect/spawner/lootdrop/maintenance/seven, -/turf/open/floor/plasteel/mono, -/area/outpost/vacant_rooms) -"tJ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"zn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /turf/open/floor/wood, -/area/outpost/crew/bar) -"tM" = ( -/obj/structure/grille/indestructable, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/area/outpost/crew) +"zp" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/cardboard, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"zq" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "outsmall1" }, +/obj/structure/window/reinforced/fulltile/indestructable, /turf/open/floor/plating, -/area/outpost/maintenance/fore) -"tN" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/newscaster/directional/north, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/area/outpost/crew) +"zv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"tO" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"zG" = ( +/obj/effect/turf_decal/corner/opaque/red{ + dir = 6 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"tP" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/pillbottles, -/obj/projectile/bullet/dart/syringe, -/obj/projectile/bullet/dart/syringe{ - pixel_x = -6 - }, -/obj/projectile/bullet/dart/syringe{ - pixel_y = 4; - pixel_x = 8 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"tQ" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 +"zL" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"tR" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/outpost/security) -"tT" = ( -/obj/machinery/button/door{ - id = "out2"; - normaldoorcontrol = 1; - specialfunctions = 4; +/obj/effect/turf_decal/spline/fancy/opaque/grey{ dir = 1; - pixel_y = -22; - pixel_x = -9 + pixel_x = -1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/floordetail/tiled, /turf/open/floor/plasteel, -/area/outpost/maintenance/fore) -"tU" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/techfloor{ - dir = 9 +/area/outpost/vacant_rooms) +"zS" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"zW" = ( +/obj/machinery/computer/cargo/express{ + dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"tX" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"zX" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/line{ + dir = 4 }, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"tZ" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/trimline/opaque/green/line{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/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/tech, -/area/outpost/hallway/central) -"ua" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"uc" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/hallway/port) -"uf" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" +/area/outpost/cargo) +"Am" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/structure/closet/crate/science, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"Ao" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Ap" = ( +/obj/machinery/firealarm/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Au" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/outpost/crew) +"AC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"uh" = ( /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms/office) -"uj" = ( -/obj/structure/flora/grass/jungle, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"uk" = ( -/obj/structure/rack, -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/glass/rag, -/obj/item/razor, -/obj/item/plunger, -/turf/open/floor/plasteel, -/area/outpost/maintenance/fore) -"un" = ( -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/corner/opaque/black{ dir = 6 }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"uo" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"AI" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/newscaster/directional/south, +/obj/machinery/camera/autoname{ + dir = 9 }, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms/office) -"uq" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ - dir = 1 +/area/outpost/vacant_rooms) +"AK" = ( +/obj/machinery/door/airlock/public/glass, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"us" = ( -/obj/structure/cable/yellow{ - icon_state = "4-9" +/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/cable/yellow{ - icon_state = "1-9" +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"AL" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 }, -/obj/effect/turf_decal/corner_techfloor_gray{ +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"AM" = ( +/obj/effect/turf_decal/corner/opaque/black{ dir = 10 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"ut" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"AR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 9 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"uu" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"AU" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 }, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/waste/trash, -/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) -"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{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"uD" = ( -/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) -"uF" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/beer/light{ - pixel_y = -2; - pixel_x = 5 +"AY" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"uL" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/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/industrial/stand_clear{ +/obj/effect/turf_decal/siding/thinplating{ dir = 4 }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/machinery/door/airlock/public/glass{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, /area/outpost/hallway/central) -"uM" = ( -/obj/machinery/light/dim/directional/west, -/obj/structure/disposalpipe/segment{ - dir = 1 +"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/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"uN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ +"Bp" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"uQ" = ( -/obj/structure/table, -/obj/item/clipboard{ - pixel_y = -5; - pixel_x = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"uU" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/maintenance/fore) -"uW" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/firealarm/directional/north, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"uX" = ( -/obj/machinery/disposal/bin, -/obj/machinery/newscaster/directional/west, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 1 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/central) -"uZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/machinery/door/airlock/public/glass{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"vg" = ( -/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, +/turf/open/floor/plasteel/tech, /area/outpost/vacant_rooms) -"vm" = ( -/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{ +"Bs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"vo" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = -12; - pixel_y = 9 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"vq" = ( -/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) -"vr" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/cable{ + icon_state = "1-4" }, -/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, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"vF" = ( -/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) -"vG" = ( -/obj/structure/grille, -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"vJ" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +"Bu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/turf/open/floor/wood, +/area/outpost/crew) +"Bx" = ( +/obj/structure/chair{ + dir = 4 }, /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) -"vQ" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 - }, -/obj/structure/sign/poster/random{ - pixel_y = 30 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 }, /turf/open/floor/plasteel, -/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) -"vU" = ( -/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) -"vV" = ( -/obj/machinery/door/airlock/public{ - id_tag = "out2" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/area/outpost/hallway/central) +"BE" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1; + pixel_x = -1 }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"vX" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + pixel_x = -1 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"vZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"wa" = ( -/obj/structure/sign/painting/library{ - pixel_y = 0; - pixel_x = -26 +/area/outpost/vacant_rooms) +"BF" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/obj/effect/decal/cleanable/wrapping, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/confetti, -/turf/open/floor/wood, -/area/outpost/crew/library) -"wc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/structure/sign/poster/random{ - pixel_y = -30 +/obj/machinery/camera/autoname{ + dir = 6 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"wg" = ( +/turf/open/floor/plasteel, +/area/outpost/crew) +"BJ" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/donut, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"wi" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 6 +/obj/effect/turf_decal/box/corners{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"wk" = ( -/obj/structure/chair/sofa/left{ - dir = 4 +/area/outpost/vacant_rooms) +"BQ" = ( +/obj/structure/railing/corner{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"wn" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"wo" = ( -/obj/structure/disposalpipe/trunk{ +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"Cc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/disposaloutlet{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/conveyor/auto{ - dir = 1; - id = "outpost3" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"wt" = ( -/obj/effect/decal/cleanable/food/tomato_smudge, -/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/siding/wood, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood/mahogany, -/area/outpost/crew/bar) -"wy" = ( -/obj/machinery/mineral/processing_unit_console{ - pixel_y = 20; - machinedir = 2; - output_dir = 4 - }, -/obj/structure/railing, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/wood, +/area/outpost/crew) +"Cd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, /area/outpost/cargo) -"wz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +"Cj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/outpost/storage) -"wA" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 10 +/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 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"wE" = ( -/obj/structure/cable/yellow{ - icon_state = "2-9" +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"wJ" = ( -/obj/structure/falsewall/reinforced, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/falsewall/reinforced, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"wL" = ( -/turf/closed/indestructible/reinforced, +/turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"wM" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"wO" = ( -/obj/structure/chair/wood, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"wS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/spider/stickyweb, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"wX" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/wrapping, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"xi" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/camera/autoname{ - dir = 5 +"Ct" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"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/segment{ + dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"xy" = ( -/obj/effect/decal/cleanable/glass/strange, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +"CI" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/central) -"xF" = ( -/obj/machinery/conveyor/auto{ - id = "outpost3"; - dir = 1 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"xM" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"CL" = ( +/obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 + dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"xW" = ( -/obj/effect/turf_decal/industrial/warning{ +"CR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/stairs{ dir = 1 }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/airlock{ - name = "Restroom"; - id_tag = "out3" +/area/outpost/hallway/central) +"CT" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/bar) -"xX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"De" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/green/line{ dir = 8 }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"xY" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/sign/poster/official/miners{ - pixel_x = 26 +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"Df" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"xZ" = ( -/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 +/area/outpost/crew/dorm) +"Dg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"yc" = ( -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"yh" = ( -/obj/structure/chair/sofa/corner{ - dir = 4 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"yi" = ( -/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) -"yj" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Do" = ( +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ dir = 4 }, +/obj/item/paper_bin, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"Dz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 10 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"ym" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - pixel_x = 28 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"yq" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/industrial/stand_clear, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/area/outpost/vacant_rooms) +"DA" = ( +/obj/structure/railing/corner{ + dir = 4 }, -/obj/structure/disposalpipe/junction/flip{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/junction{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"DB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/outpost/crew) +"DJ" = ( +/obj/structure/chair/comfy/brown{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"yr" = ( -/obj/structure/railing{ +/obj/effect/turf_decal/spline/fancy/wood{ dir = 1 }, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"DQ" = ( +/obj/effect/turf_decal/corner/opaque/green{ dir = 10 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"yt" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/ship/dirt, -/area/outpost/hallway/port) -"yw" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 +/obj/structure/table, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"DU" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"yx" = ( -/obj/machinery/firealarm/directional/south, -/obj/item/kirbyplants{ - icon_state = "plant-21"; - pixel_y = 1; - pixel_x = -11 +/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/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) -"yz" = ( -/obj/machinery/door/airlock/public, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"DX" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -13 }, -/obj/structure/disposalpipe/segment{ +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel, +/area/outpost/crew) +"DY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/junction/yjunction{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"yF" = ( -/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/structure/cable{ + icon_state = "1-4" }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"yH" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/wine{ - pixel_y = 5; - pixel_x = -8 - }, -/obj/item/reagent_containers/food/drinks/bottle/wine{ - pixel_y = 5; - pixel_x = 7 +"Eg" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 }, -/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) -"yI" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"yJ" = ( -/obj/effect/decal/cleanable/food/tomato_smudge, -/turf/open/floor/wood/mahogany, -/area/outpost/crew/bar) -"yY" = ( -/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, +/area/outpost/hallway/central) +"Eh" = ( +/obj/structure/railing{ + dir = 1 }, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"zb" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"En" = ( +/obj/effect/turf_decal/corner/opaque/green/three_quarters{ + dir = 4 }, -/obj/machinery/door/poddoor/shutters/indestructible{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Eo" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"Ep" = ( +/obj/structure/window/reinforced/tinted{ dir = 8 }, -/obj/machinery/door/airlock/security/brig{ - req_access = list("101"); +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/grass, +/area/outpost/crew) +"Eq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 }, /turf/open/floor/plasteel/tech, -/area/outpost/security) -"zd" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/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/effect/spawner/lootdrop/waste/trash, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"ze" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"zf" = ( -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"zq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"zu" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ +"Ez" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"EB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/wood, +/area/outpost/crew) +"ED" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"zv" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/sign/directions/service{ - pixel_y = 22; - dir = 8 +/obj/machinery/microwave{ + pixel_y = 5 }, +/turf/open/floor/carpet, +/area/outpost/crew) +"EG" = ( /obj/effect/turf_decal/corner/opaque/black{ - dir = 10 + dir = 9 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"zz" = ( -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 5 +"EH" = ( +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/storage) -"zA" = ( -/obj/machinery/door/airlock/public, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"zB" = ( -/obj/structure/frame, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"zC" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/security) -"zH" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/storage) -"zI" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_y = 5 +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"zL" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"EI" = ( +/obj/effect/turf_decal/corner/opaque/green/three_quarters{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/structure/chair{ dir = 4 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"zQ" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/barricade/wooden, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"zR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/chem_pile, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"zS" = ( -/obj/effect/spawner/lootdrop/waste/trash, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"zT" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/camera/autoname{ +"EK" = ( +/obj/structure/railing/corner{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"zV" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"zY" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"EM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/security) -"Ab" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Ad" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"Af" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/tech, /area/outpost/cargo) -"Ag" = ( -/obj/structure/chair{ +"EU" = ( +/obj/structure/curtain/cloth/fancy, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/item/toy/figure/head_of_personnel{ - layer = 2.9; - pixel_y = 4 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Am" = ( -/obj/machinery/vending/cola/random, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/port) -"Ao" = ( -/obj/item/radio/intercom/directional/north, -/obj/item/trash/can/food/beans{ - pixel_y = -1 +/obj/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/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) +"EY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/structure/closet/emcloset/wall{ + pixel_y = 28 }, -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = -14; - pixel_y = -7 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 }, -/obj/item/reagent_containers/food/snacks/grown/soybeans{ - pixel_x = -12; - pixel_y = 8 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Fa" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/turf/open/floor/plating/asteroid, -/area/outpost/maintenance/central) -"Ap" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"As" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"Ff" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/end, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"Fu" = ( /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"At" = ( -/obj/structure/dresser{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/green{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid, -/area/outpost/maintenance/central) -"Av" = ( -/obj/machinery/button/door{ - specialfunctions = 4; - normaldoorcontrol = 1; - id = "out1"; - dir = 1; - pixel_y = -21; - pixel_x = -8 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"FB" = ( +/obj/structure/railing{ + dir = 6 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ +/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/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/storage) -"Ay" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms/office) -"AI" = ( -/obj/effect/turf_decal/industrial/warning{ +/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/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/siding/thinplating{ dir = 4 }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"FQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/airlock/maintenance{ - dir = 4; - req_access = list("101") +/turf/open/floor/wood, +/area/outpost/crew) +"FU" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/outpost/maintenance/central) -"AL" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Gc" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ + dir = 4 }, -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Gp" = ( /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/structure/disposalpipe/segment, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 8; + pixel_y = 1 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 5 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"AM" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +/area/outpost/vacant_rooms) +"Gq" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters{ + dir = 8 }, -/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) -"AP" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/pill/epinephrine, -/obj/item/paper_bin/bundlenatural{ - pixel_x = 9; - pixel_y = 13 +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"AT" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/modglass{ - pixel_y = 1; - pixel_x = -6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/item/reagent_containers/food/drinks/modglass{ - pixel_y = 5; - pixel_x = 5 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"AU" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/crew/dorm) +"Gu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"AZ" = ( -/obj/structure/table/wood, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"Ba" = ( -/obj/structure/table/wood, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"Bg" = ( -/obj/machinery/recycler, -/obj/machinery/conveyor/auto{ - dir = 4; - id = "outpost3" +"GA" = ( +/obj/item/kirbyplants/random, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Bj" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"GB" = ( +/obj/structure/rack, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"GG" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"GJ" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"Bo" = ( -/obj/structure/flora/rock/pile, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"Bp" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/wood, +/area/outpost/crew) +"GK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/sign/number/random, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Bq" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Bu" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/beer/light{ - pixel_x = -8 - }, -/obj/item/newspaper{ - pixel_x = 7; - pixel_y = 7 - }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"Bw" = ( -/turf/closed/indestructible/rock, -/area/outpost/external) -"BC" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "1-8" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"GL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"BE" = ( -/obj/item/kirbyplants{ - icon_state = "plant-22" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 9 +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/central) -"BG" = ( -/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) -"BJ" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"BK" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/light/dim/directional/north, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 6 +"GM" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/operations) +"GQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 9 +/obj/structure/sign/poster/official/random{ + pixel_y = 32; + pixel_x = -33 }, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/tech, /area/outpost/cargo) -"BL" = ( -/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 +"GS" = ( +/obj/structure/urinal{ + pixel_y = 32 }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/neutral{ +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"GT" = ( +/obj/effect/turf_decal/corner/opaque/black{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"BP" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/effect/turf_decal/industrial/stand_clear{ +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ dir = 1 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"BV" = ( -/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) -"BW" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"BX" = ( -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{ +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ dir = 4 }, -/obj/machinery/light/dim/directional/east, +/obj/machinery/firealarm/directional/south, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"BZ" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Ca" = ( -/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) -"Cb" = ( -/obj/effect/turf_decal/industrial/caution, -/obj/structure/cable/yellow{ - icon_state = "4-8" +"GU" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 10 }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Hb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Cc" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/crew/bar) -"Cd" = ( -/obj/structure/closet/secure_closet/contraband, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"Ce" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/siding/wood/corner{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"He" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/spline/fancy/wood, /turf/open/floor/wood, -/area/outpost/crew/bar) -"Ci" = ( -/obj/structure/railing{ - dir = 8 +/area/outpost/vacant_rooms) +"Hg" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Cl" = ( -/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 +/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/wood, -/area/outpost/crew/bar) -"Cm" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/tech/techmaint, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + pixel_x = -1 + }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Hl" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"Cr" = ( -/obj/effect/decal/cleanable/crayon{ - icon_state = "arrow"; - pixel_y = 11; - pixel_x = -14 +"Hm" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced, +/obj/item/storage/fancy/donut_box{ + pixel_y = -3 }, -/turf/closed/indestructible/reinforced, -/area/outpost/maintenance/fore) -"Ct" = ( -/obj/structure/grille/indestructable, -/obj/structure/cable/yellow{ - icon_state = "0-4" +/turf/open/floor/carpet, +/area/outpost/crew) +"Hp" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/end, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 }, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/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/structure/disposalpipe/segment{ +/obj/effect/turf_decal/trimline/opaque/green/line{ dir = 4 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"HC" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen{ + dir = 5 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Cz" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/crew/dorm) +"HG" = ( +/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/hallway/central) -"CH" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/area/outpost/vacant_rooms) +"HH" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/techfloor{ - dir = 1 +/turf/open/floor/wood, +/area/outpost/crew) +"HL" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"CI" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/light/dim/directional/west, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/effect/turf_decal/trimline/opaque/green/end{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"CK" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/effect/turf_decal/corner_techfloor_grid{ +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"CL" = ( -/obj/structure/flora/junglebush, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"CU" = ( -/obj/item/shovel/spoon, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"CZ" = ( -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 9 +/obj/machinery/camera/autoname{ + dir = 1 }, -/obj/effect/spawner/lootdrop/salvage/metal, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"Df" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/random{ - pixel_x = 28 +/area/outpost/vacant_rooms) +"HP" = ( +/obj/effect/turf_decal/corner/opaque/green/three_quarters{ + dir = 4 + }, +/obj/machinery/vending/coffee, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/neutral, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"Dh" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +"HR" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/trunk{ + dir = 2 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 }, -/obj/effect/turf_decal/corner/opaque/brown/full, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Dp" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Ds" = ( -/obj/structure/railing/corner{ - dir = 8 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"HU" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 }, -/obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Dv" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/security) -"DA" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/directional/west, +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"HZ" = ( +/obj/structure/table/wood, +/obj/structure/displaycase/forsale, +/obj/effect/turf_decal/siding/wood/end, +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"Ij" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"DC" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"DD" = ( -/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 +/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/effect/turf_decal/corner/opaque/neutral{ +/turf/open/floor/carpet, +/area/outpost/crew) +"Ip" = ( +/obj/structure/toilet{ dir = 8 }, -/obj/effect/turf_decal/floordetail/tiled, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"DH" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"DI" = ( -/obj/structure/railing, -/obj/effect/decal/cleanable/dirt, +/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 + }, /turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"DV" = ( -/obj/structure/falsewall/reinforced, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Ed" = ( -/obj/structure/chair/stool/bar{ - dir = 1; - pixel_y = 13 +/area/outpost/crew/dorm) +"It" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/newscaster/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"Ee" = ( -/obj/machinery/light/dim/directional/west, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"Eg" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/item/radio/intercom/directional/east, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Ix" = ( +/obj/structure/sign/directions/command{ + dir = 4; + pixel_y = -24 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/green{ dir = 8 }, /turf/open/floor/plasteel, -/area/outpost/crew/janitor) -"Eh" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 +/area/outpost/hallway/central) +"IA" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/newscaster/directional/west, /turf/open/floor/plasteel, -/area/outpost/security) -"Ek" = ( -/obj/machinery/door/airlock{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/area/outpost/operations) +"IB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"ID" = ( +/obj/structure/railing, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"IU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 }, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"IY" = ( +/obj/structure/chair/greyscale{ dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plating, -/area/outpost/crew/bar) -"El" = ( -/obj/structure/sign/painting/library{ - pixel_y = -26 + dir = 10 }, /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) -"Em" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/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) -"Er" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Es" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +/area/outpost/crew/dorm) +"Jh" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 }, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Et" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Eu" = ( -/obj/structure/railing/wood{ - dir = 2; - color = "#792f27" - }, +/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, -/turf/open/floor/plasteel/stairs/wood{ - dir = 4; - color = "#792f27" - }, -/area/outpost/crew/bar) -"Ew" = ( -/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) -"Ez" = ( -/obj/effect/spawner/structure/window/reinforced/indestructable, -/turf/open/floor/plating, -/area/outpost/hallway/port) -"EE" = ( -/obj/structure/railing{ +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/garbage, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"Jo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"EG" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/structure/disposalpipe/junction/yjunction{ + dir = 8 }, -/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{ +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"Jr" = ( +/obj/structure/cable{ 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, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"EK" = ( -/obj/item/radio/intercom/wideband/table{ - dir = 8; - pixel_y = 19; - pixel_x = -6 - }, -/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) -"EM" = ( -/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) -"EO" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance/four, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms/office) -"EQ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, +/area/outpost/hallway/central) +"Ju" = ( +/obj/structure/railing, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 9 }, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/tech, /area/outpost/cargo) -"Fa" = ( -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4 +"Jw" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/security) -"Fg" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/vacant_rooms/office) -"Fi" = ( -/obj/structure/chair/stool/bar{ - dir = 1; - pixel_y = 13 +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/spline/fancy/wood{ + dir = 5 }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/item/radio/intercom/directional/north{ + pixel_y = 32 }, -/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/royalblack, +/area/outpost/vacant_rooms) +"Jz" = ( +/obj/machinery/light/directional/east, /turf/open/floor/wood, -/area/outpost/crew/bar) -"Fj" = ( -/obj/effect/turf_decal/steeldecal/steel_decals3{ - dir = 1 +/area/outpost/crew) +"JB" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Fo" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "outpost1" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"Fr" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"JC" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 }, -/obj/structure/chair/office{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/camera/autoname{ +/obj/structure/disposalpipe/segment{ dir = 9 }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"Ft" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/wood, +/area/outpost/crew) +"JL" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/security/brig{ - req_access = list("101") +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"JM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/security) -"Fz" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/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/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/directional/east, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"FB" = ( +"Ka" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"FE" = ( -/obj/structure/railing, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 5 +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Kn" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"FF" = ( -/obj/effect/turf_decal/ihejirika_small/left, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"FN" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"Ko" = ( +/obj/effect/turf_decal/box/corners{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"Kt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ 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) -"FW" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"Gb" = ( -/obj/structure/spider/stickyweb, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Gd" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Ge" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/structure/disposalpipe/junction/flip{ + dir = 1 }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "guy"; - pixel_y = 20 +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/turf_decal/steeldecal/steel_decals6{ - dir = 9 +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Gf" = ( -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Gi" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Ku" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/obj/item/trash/semki, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"Gj" = ( -/obj/structure/railing{ +/obj/machinery/newscaster/directional/south, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"Kw" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/line{ dir = 8 }, -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 6 +/obj/effect/turf_decal/trimline/opaque/green/line{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"Ky" = ( +/obj/effect/turf_decal/spline/fancy/wood{ + dir = 4 }, +/turf/open/floor/carpet/royalblack, +/area/outpost/vacant_rooms) +"Kz" = ( +/obj/machinery/light/directional/south, /turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"Gr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/techfloor{ +"KA" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"KD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Gs" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/light/dim/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"Gu" = ( +/obj/machinery/newscaster/directional/east, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"KH" = ( /obj/machinery/disposal/bin, +/obj/effect/turf_decal/box, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/grey/full, -/turf/open/floor/plasteel, -/area/outpost/crew/janitor) -"Gw" = ( +/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel, -/area/outpost/security) -"GB" = ( +/area/outpost/vacant_rooms) +"KJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/maintenance{ - dir = 4; - req_access = list("101") - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"GK" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/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 +/area/outpost/cargo) +"KK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/outpost/crew) +"KQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew) +"KU" = ( +/obj/machinery/power/terminal{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/floordetail/tiled, /turf/open/floor/plasteel, -/area/outpost/maintenance/fore) -"GN" = ( +/area/outpost/operations) +"KV" = ( /obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"GQ" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"KW" = ( +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"GS" = ( -/obj/machinery/modular_computer/console/preset/civilian, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"GT" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/elevator_call_button{ + pixel_y = 25 }, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "main" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/tech, /area/outpost/hallway/central) -"GU" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-4" +"KZ" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "1-8" +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/structure/disposalpipe/junction/yjunction{ +/turf/open/floor/plasteel/dark, +/area/outpost/operations) +"Ld" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 +/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/manifold/scrubbers/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"GW" = ( +"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 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 + dir = 6 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"He" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/light/dim/directional/south, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"Lz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"LD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Hh" = ( -/obj/item/kirbyplants{ - icon_state = "plant-06"; - pixel_y = 17; - pixel_x = -9 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/kirbyplants{ - icon_state = "plant-12"; - pixel_y = 14; - pixel_x = 3 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/kirbyplants{ - icon_state = "plant-11"; - pixel_y = 4; - pixel_x = -6 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"LG" = ( +/obj/structure/railing/corner{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/structure/sign/poster/random{ - pixel_y = 0; - pixel_x = -28 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"LI" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-8" }, -/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/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/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Hk" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/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{ + 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/spline/fancy/opaque/grey{ + pixel_x = -1 }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Hn" = ( -/obj/structure/grille/indestructable, -/obj/structure/cable/yellow{ - icon_state = "0-2" +/area/outpost/vacant_rooms) +"LZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/structure/cable/yellow, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Hu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +/turf/open/floor/wood, +/area/outpost/crew) +"Md" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Hw" = ( -/obj/structure/reagent_dispensers/beerkeg, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/corner/transparent/brown/full, +/turf/open/floor/plasteel/dark, +/area/outpost/operations) +"Mk" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plasteel, -/area/outpost/crew/bar) -"Hz" = ( -/obj/structure/cable/yellow{ +/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/disposalpipe/segment{ - dir = 9 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Mt" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"HA" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks{ - pixel_y = 13; - layer = 3 +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"Mz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/drinks/shaker{ - pixel_x = 15; - layer = 4.26 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 8; + pixel_y = 1 }, -/obj/item/pen/fourcolor{ - pixel_x = 4; - pixel_y = -1 +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"HF" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/gloves, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/mono, -/area/outpost/storage) -"HG" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"MA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"MB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32; + pixel_y = -32 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"ME" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"HL" = ( -/obj/structure/easel, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/canvas/nineteenXnineteen, -/turf/open/floor/wood, -/area/outpost/crew/library) -"HN" = ( -/obj/machinery/atmospherics/pipe/simple/multiz{ - pixel_y = 1; - pixel_x = -9 +/area/outpost/cargo) +"MF" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/machinery/power/deck_relay, -/obj/machinery/atmospherics/pipe/simple/multiz{ - pixel_y = 1; - pixel_x = 8 +/obj/structure/window/reinforced, +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/item/circuitboard/machine/paystand, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"MN" = ( +/obj/structure/railing/corner{ + dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"HQ" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ +/obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"MO" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"Nc" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/end, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/storage) -"HR" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"Ne" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/tech, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, /area/outpost/hallway/central) -"HZ" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" +"Ni" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"Nl" = ( +/obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 6 +/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/effect/turf_decal/industrial/stand_clear{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew) +"Nx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/wood, +/area/outpost/crew) +"NH" = ( +/obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Ib" = ( -/obj/machinery/power/terminal{ - dir = 4 +/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 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Ic" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"NX" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"Oa" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen{ + dir = 5 }, -/obj/effect/turf_decal/corner/opaque/red{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, -/obj/machinery/newscaster/directional/west, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/outpost/security) -"Id" = ( -/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, +/area/outpost/crew/dorm) +"Ob" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1 + }, /obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/crew/janitor) -"Im" = ( -/obj/structure/chair/pew{ - dir = 8 - }, +/area/outpost/vacant_rooms) +"Od" = ( /obj/effect/turf_decal/corner/opaque/green{ dir = 6 }, +/obj/machinery/newscaster/directional/east, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"Ip" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/disposalpipe/segment{ - dir = 4 +"Of" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/caution, +/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/hallway/port) -"Is" = ( -/obj/machinery/conveyor/auto{ - dir = 5; - id = "outpost3" - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"It" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 8 +/area/outpost/vacant_rooms) +"Or" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/crew) +"Ou" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew) +"Ov" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"Oz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/outpost/crew) +"OC" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/corner/opaque/red{ + dir = 6 + }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"Iw" = ( -/obj/machinery/shower{ - pixel_y = 17 +"OH" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/spline/fancy/wood{ + dir = 10 }, -/obj/effect/decal/cleanable/food/pie_smudge, -/obj/effect/turf_decal/borderfloor/full, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/floordetail/pryhole, -/turf/open/floor/plasteel, -/area/outpost/maintenance/fore) -"Ix" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "2-8" +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"OY" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Pa" = ( +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/green{ dir = 10 }, /turf/open/floor/plasteel, -/area/outpost/crew/janitor) -"Iz" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/area/outpost/hallway/central) +"Pj" = ( +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "2-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/structure/disposalpipe/segment{ +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Pu" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/paper_bin{ + pixel_y = 3; + pixel_x = 2 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/item/pen{ + pixel_y = 4; + pixel_x = 2 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"Pz" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/corner/opaque/green{ dir = 5 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"IB" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/corner/opaque/neutral, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"IE" = ( -/obj/structure/table, +/area/outpost/hallway/central) +"PA" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/storage) -"IF" = ( -/obj/machinery/light/dim/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/decal/cleanable/glass, /turf/open/floor/plasteel, /area/outpost/vacant_rooms) -"IG" = ( -/obj/structure/railing, +"PE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"IM" = ( -/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) -"IQ" = ( -/obj/structure/falsewall/reinforced, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"IR" = ( /obj/structure/disposalpipe/segment{ - dir = 5 + dir = 4 }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"IU" = ( -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/disposalpipe/segment{ +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"PG" = ( +/obj/structure/railing{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"PH" = ( +/obj/structure/railing{ + dir = 10 }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 9 +/turf/open/floor/grass, +/area/outpost/crew) +"PR" = ( +/obj/structure/railing{ + dir = 5 }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 6 +/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 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"IX" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"Qe" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/pen, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"Qf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 10 }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"IY" = ( -/obj/effect/decal/cleanable/crayon{ - icon_state = "antilizard"; - pixel_x = -30 +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 4; + pixel_y = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/maintenance/fore) -"Jf" = ( -/obj/machinery/jukebox{ - pixel_y = 16; - density = 0; - can_be_unanchored = 1 +/area/outpost/vacant_rooms) +"Qh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"Jg" = ( -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/storage) -"Jl" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 +/turf/open/floor/wood, +/area/outpost/crew) +"Qj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Qk" = ( +/turf/open/floor/carpet, +/area/outpost/crew) +"Qn" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 }, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Jo" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/area/outpost/vacant_rooms) +"Qt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 +/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/hallway/port) -"Jr" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/light/dim/directional/south, -/obj/effect/turf_decal/corner/opaque/black{ +/area/outpost/vacant_rooms) +"Qw" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"QA" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 + }, +/obj/structure/chair{ dir = 1 }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"QD" = ( +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"QK" = ( /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" + }, +/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 + }, +/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 }, +/obj/machinery/light/directional/west, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"Jv" = ( -/obj/structure/chair/wood{ - dir = 8 +"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" }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"JA" = ( -/obj/machinery/mineral/processing_unit_console{ - pixel_y = -31; - machinedir = 1; - output_dir = 1 +/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/corner/opaque/brown{ - dir = 10 +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 }, -/turf/open/floor/plasteel/patterned, /area/outpost/cargo) -"JE" = ( -/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) -"JI" = ( -/obj/structure/sign/poster/random{ - pixel_x = 28 +"Rk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" +/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 }, -/area/outpost/crew/bar) -"JK" = ( -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/item/radio/intercom/directional/west, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"JL" = ( -/obj/item/bedsheet, -/obj/structure/bed/pod, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"JM" = ( -/obj/structure/chair/sofa/right{ - dir = 4 +/area/outpost/hallway/central) +"Ru" = ( +/obj/structure/chair/office{ + dir = 8 }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"JP" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/item/radio/intercom/directional/north{ + pixel_y = 32 }, -/obj/effect/turf_decal/steeldecal/steel_decals3{ +/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 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"JT" = ( -/obj/machinery/door/airlock/maintenance{ - req_access = list("101") +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/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/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ +/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/yellow{ +/obj/structure/cable{ 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, +/area/outpost/hallway/central) +"RG" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/tech, -/area/outpost/maintenance/fore) -"JU" = ( -/obj/structure/disposalpipe/segment{ +/area/outpost/cargo) +"RN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/turf_decal/corner/opaque/green{ dir = 4 }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"RV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"JX" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/junglebush/b, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"Ki" = ( -/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, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"Kj" = ( -/obj/effect/decal/cleanable/ash, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"Kl" = ( -/obj/machinery/computer/cryopod/directional/north, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 5 +"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 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"Km" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable/yellow{ - icon_state = "0-4" +/obj/effect/turf_decal/corner/opaque/red{ + dir = 9 }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms/office) -"Kn" = ( -/obj/structure/table, -/obj/item/radio/intercom/table{ - dir = 8; - layer = 2.99; - pixel_x = -6 +/area/outpost/hallway/central) +"Sc" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 }, -/obj/machinery/light/small/directional/north, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"Ko" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/camera/autoname{ - dir = 5 +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Si" = ( +/obj/structure/filingcabinet/double, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew/dorm) +"Sn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Kv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/structure/disposalpipe/junction/flip{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown/full, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Ky" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Sp" = ( +/obj/machinery/vending/snack/random, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel, +/area/outpost/crew) +"St" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, -/obj/structure/disposalpipe/segment{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"SC" = ( +/obj/structure/rack, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"ST" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/spline/fancy/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"SV" = ( +/obj/effect/turf_decal/siding/thinplating{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"Kz" = ( -/obj/structure/falsewall/reinforced, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/structure/barricade/wooden/crude, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/oil/slippery, +/obj/machinery/door/airlock/public/glass{ dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"KC" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" +/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/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"KJ" = ( -/obj/effect/decal/cleanable/crayon{ - icon_state = "Donk"; - pixel_y = 32 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/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/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/mirror{ - pixel_y = 30 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/structure/sink{ - pixel_y = 24 +/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 }, -/obj/effect/turf_decal/corner/transparent/brown/full, /turf/open/floor/plasteel, -/area/outpost/crew/bar) -"KM" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"KO" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms/office) -"KR" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/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 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"KS" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ +"TA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"TB" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 8 +/turf/open/floor/wood, +/area/outpost/crew) +"TW" = ( +/obj/effect/turf_decal/corner/opaque/bottlegreen{ + dir = 10 }, +/obj/machinery/airalarm/directional/south, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"KT" = ( -/obj/machinery/vending/games, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"KV" = ( -/obj/structure/disposalpipe/segment{ +/area/outpost/crew/dorm) +"TY" = ( +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/orange{ - dir = 5 +/obj/structure/filingcabinet/double, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"Ud" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"Uo" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/opaque/green/line{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"KW" = ( -/obj/structure/cable/yellow{ - icon_state = "6-8" +/obj/effect/turf_decal/trimline/opaque/green/line{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 10 +/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/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 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"Uz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/machinery/camera/autoname{ + dir = 1 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"KX" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew) +"UE" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"UM" = ( +/obj/machinery/holopad/emergency/bar, +/obj/effect/landmark/observer_start, +/turf/open/floor/carpet, +/area/outpost/crew) +"UU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Vg" = ( +/obj/machinery/modular_computer/console/preset/civilian, +/obj/machinery/camera/autoname{ + dir = 6 }, -/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/cargo) +"Vh" = ( +/obj/structure/railing, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"Vq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 8 +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"KZ" = ( -/obj/machinery/door/airlock/maintenance{ - dir = 4; - req_access = list("101") +/area/outpost/hallway/central) +"Vy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew) +"VE" = ( +/obj/structure/railing, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/stairs{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/area/outpost/cargo) +"VG" = ( +/obj/effect/turf_decal/siding/thinplating{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 }, /obj/machinery/door/firedoor/border_only{ - dir = 4 + dir = 8 }, /obj/machinery/door/firedoor/border_only{ - dir = 8 + dir = 4 }, -/obj/structure/disposalpipe/segment{ +/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/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/tech, /area/outpost/cargo) -"Lb" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +"VV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/steeldecal/steel_decals6{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"VW" = ( +/obj/structure/chair/wood/wings{ dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Le" = ( -/obj/structure/chair{ +/obj/effect/turf_decal/siding/wood{ dir = 1 }, +/turf/open/floor/wood, +/area/outpost/crew) +"VX" = ( +/obj/machinery/button/door{ + id = "ob3"; + name = "door lock"; + pixel_x = -8; + pixel_y = 24; + specialfunctions = 4; + normaldoorcontrol = 1 + }, +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/newscaster/directional/south, /turf/open/floor/plasteel, -/area/outpost/vacant_rooms/office) -"Lh" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" +/area/outpost/crew) +"Wd" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood, +/area/outpost/crew) +"Wt" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/effect/turf_decal/corner_techfloor_grid{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"Ll" = ( -/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) -"Ls" = ( -/obj/structure/cable/yellow{ - icon_state = "1-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/disposalpipe/segment{ - dir = 5 +/obj/structure/sign/poster/official/random{ + pixel_x = -32; + pixel_y = -32 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/corner/opaque/bottlegreen{ dir = 5 }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 9 - }, -/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) -"Lt" = ( -/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/rack, -/obj/item/storage/bag/trash, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Lu" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-8" +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"WV" = ( +/obj/structure/sign/poster/contraband/inteq{ + pixel_y = 32 }, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"WW" = ( +/obj/effect/turf_decal/corner/opaque/green{ + dir = 5 }, -/obj/structure/disposalpipe/junction/yjunction{ - dir = 1 +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/black/full, +/obj/machinery/vending/cigarette, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"LB" = ( -/obj/structure/falsewall/reinforced, -/turf/open/floor/plating, -/area/outpost/storage) -"LD" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/area/outpost/hallway/central) +"Xc" = ( +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"LK" = ( -/obj/structure/flora/junglebush/c, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"LL" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"LM" = ( -/obj/structure/table/wood, -/obj/item/newspaper{ - pixel_x = 1; - pixel_y = 7 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"LP" = ( -/obj/machinery/door/airlock, -/turf/open/floor/wood, -/area/outpost/crew/library) -"LT" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/siding/wood{ +"Xk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"Mc" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/decal/cleanable/insectguts, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Md" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "firedanger"; - pixel_y = -28 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Mg" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Ml" = ( -/obj/structure/falsewall/reinforced, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Mq" = ( -/obj/structure/chair/pew/left{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Xl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Mt" = ( -/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) -"Mv" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/trunk{ +/area/outpost/vacant_rooms) +"Xm" = ( +/obj/effect/turf_decal/industrial/stand_clear{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"My" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Xn" = ( +/obj/effect/turf_decal/box/corners, +/obj/structure/closet/cardboard, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"Xp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"MB" = ( -/obj/effect/turf_decal/corner/opaque/orange{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"MC" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ +/obj/effect/turf_decal/spline/fancy/opaque/grey{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/confetti, /turf/open/floor/plasteel, -/area/outpost/hallway/port) -"MF" = ( -/obj/structure/chair/office{ - dir = 1 +/area/outpost/vacant_rooms) +"Xr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/outpost/crew/dorm) +"Xx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"MJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/storage) -"MK" = ( -/obj/structure/chair/comfy/brown, -/obj/effect/turf_decal/siding/wood, -/obj/structure/sign/poster/random{ - pixel_y = 30 - }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"MM" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/machinery/light/dim/directional/north, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"MO" = ( -/obj/structure/chair/pew/right{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 }, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"MQ" = ( -/obj/structure/flora/rock, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"MT" = ( -/obj/structure/railing/corner, +"XB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ + dir = 1 }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Na" = ( -/obj/structure/railing{ - dir = 9 +/obj/item/radio/intercom/directional/east, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"XI" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Nc" = ( -/turf/closed/indestructible/rock, -/area/outpost/hallway/central) -"Ne" = ( -/obj/item/radio/intercom/directional/north, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/siding/thinplating{ dir = 4 }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"Ng" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/crew/janitor) -"Ni" = ( -/obj/structure/table, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"Nn" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"Ns" = ( -/obj/structure/chair/pew{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Nz" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/door/airlock/public/glass{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/door/poddoor/preopen{ dir = 8 }, /turf/open/floor/plasteel/tech, /area/outpost/hallway/central) -"NB" = ( -/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/effect/turf_decal/steeldecal/steel_decals_central6, +"XM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet, +/area/outpost/crew) +"XS" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/outpost/security) -"ND" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/area/outpost/hallway/central) +"Yb" = ( +/obj/structure/table, +/obj/effect/turf_decal/spline/fancy/opaque/grey, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew/dorm) +"Yd" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/hallway/central) +"Yo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/outpost/crew) +"Yr" = ( +/turf/open/floor/plasteel/stairs{ dir = 1 }, -/obj/machinery/camera/autoname{ - dir = 5 +/area/outpost/hallway/central) +"Yv" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ - dir = 4 +/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/plasteel, -/area/outpost/crew/janitor) -"NE" = ( -/obj/effect/decal/cleanable/crayon{ - icon_state = "!"; - pixel_x = 9 +/obj/structure/sink{ + dir = 4; + pixel_x = -13 }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "f"; - pixel_y = 0; - pixel_x = -19 +/obj/structure/mirror{ + pixel_x = -28 }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "u"; - pixel_y = -5; - pixel_x = -10 - }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "n" +/turf/open/floor/plasteel, +/area/outpost/cargo) +"YC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "arrow"; - pixel_y = -19; - pixel_x = 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" }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "arrow"; - pixel_y = -25; - pixel_x = -7 +/turf/open/floor/plasteel/dark, +/area/outpost/operations) +"YK" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"NF" = ( -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"NH" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"NL" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"NR" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/industrial/stand_clear, -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew) +"YQ" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/structure/railing/corner, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner, +/turf/open/floor/plasteel/patterned/grid, +/area/outpost/cargo) +"YR" = ( +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"NT" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch, -/obj/structure/barricade/wooden/crude, +/obj/machinery/door/airlock/public/glass, /turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"NU" = ( -/obj/machinery/computer/helm/viewscreen/directional/north, -/obj/structure/chair/comfy{ +/area/outpost/vacant_rooms) +"YV" = ( +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"NV" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"NX" = ( -/obj/machinery/door/poddoor/shutters/indestructible{ - dir = 4 - }, -/turf/closed/indestructible/rock, -/area/outpost/external) -"NZ" = ( -/obj/effect/spawner/lootdrop/waste/trash, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Oa" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/junglebush/c, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"Oc" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/door/firedoor/border_only{ 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) -"Oe" = ( -/obj/structure/falsewall/reinforced, -/turf/closed/indestructible/reinforced, -/area/outpost/maintenance/fore) -"Ol" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Op" = ( -/obj/structure/chair, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"Or" = ( -/obj/structure/chair/sofa/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"Ot" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "outpost1" - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"Ow" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/firedoor/border_only{ 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/structure/extinguisher_cabinet/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo/office) -"Oy" = ( -/obj/structure/chair/wood{ - dir = 1 + dir = 8 }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"OC" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 1; - piping_layer = 2 +/obj/machinery/door/airlock/wood{ + dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"OH" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"YX" = ( +/obj/machinery/door/window{ + dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/turf_decal/spline/fancy/wood, +/turf/open/floor/carpet/royalblack, +/area/outpost/vacant_rooms) +"Za" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/port) -"OL" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 + dir = 1 }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/area/outpost/crew/bar) -"ON" = ( -/obj/item/radio/intercom/directional/east, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"OP" = ( -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"OT" = ( -/obj/machinery/light/dim/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/storage) -"OY" = ( -/obj/structure/grille/indestructable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Pa" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/confetti, /turf/open/floor/wood, -/area/outpost/crew/library) -"Pb" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"Pc" = ( -/obj/machinery/door/airlock/maintenance{ +/area/outpost/crew) +"Ze" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms/office) -"Pf" = ( -/obj/structure/sign/painting/library_private{ - pixel_y = -26 +/area/outpost/cargo) +"Zg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109" }, -/obj/structure/chair/comfy/brown{ +/obj/effect/mapping_helpers/airlock/unres{ dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/outpost/operations) +"Zi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, /turf/open/floor/wood, -/area/outpost/crew/library) -"Pg" = ( -/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) -"Pk" = ( -/obj/item/radio/intercom/directional/west, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/area/outpost/crew) +"Zm" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/turf/open/floor/wood, +/area/outpost/vacant_rooms) +"Zr" = ( +/obj/machinery/porta_turret/ship, +/obj/structure/sign/warning/securearea{ + pixel_x = 26; + pixel_y = -5 }, /obj/effect/turf_decal/corner/opaque/red{ - dir = 4 + dir = 6 }, -/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel, -/area/outpost/security) -"Pl" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +/area/outpost/hallway/central) +"Zt" = ( +/obj/structure/window/reinforced/tinted{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Pm" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/donkpockets, -/turf/open/floor/plasteel/mono, +/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) -"Pn" = ( -/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) -"Pu" = ( -/obj/machinery/cryopod{ +"Zx" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/outpost/crew/dorm) +"ZE" = ( +/obj/structure/table, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/vacant_rooms) +"ZM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"Pw" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/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/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) -"PG" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"ZS" = ( +/obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/cable/yellow{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/structure/disposalpipe/segment{ - dir = 9 +/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/holosign/barrier/infinite{ - max_integrity = 500 +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/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) -"PM" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/firealarm/directional/east, -/obj/structure/holosign/barrier/infinite{ - max_integrity = 500 +/obj/structure/cable{ + icon_state = "4-8" }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, /area/outpost/hallway/central) -"PO" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/trash/syndi_cakes{ - pixel_y = 6; - pixel_x = -3 - }, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"PP" = ( -/obj/structure/grille/indestructable, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/cable/yellow, -/obj/structure/cable/yellow{ - icon_state = "0-2" +"ZY" = ( +/obj/effect/turf_decal/spline/fancy/opaque/grey{ + dir = 1; + pixel_x = -1 }, -/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) -"PS" = ( -/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) -"PV" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"PW" = ( -/obj/structure/railing, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Qc" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Qd" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "outpost2" - }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"Qk" = ( -/obj/machinery/button/door{ - dir = 8; - pixel_x = 22; - pixel_y = 9; - id = "out3"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/obj/effect/turf_decal/corner/transparent/brown/full, -/turf/open/floor/plasteel, -/area/outpost/crew/bar) -"Qn" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Qo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 10 - }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"Qp" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Qr" = ( -/obj/structure/chair/sofa{ - dir = 1 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"Qu" = ( -/obj/structure/flora/grass/jungle/b, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/central) -"Qw" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel, -/area/outpost/security) -"Qx" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"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) -"QI" = ( -/obj/structure/chair/stool/bar{ - dir = 1; - pixel_y = 13 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"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) -"QM" = ( -/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) -"QN" = ( -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/storage) -"QP" = ( -/obj/machinery/door/airlock/security/brig{ - req_access = list("101") - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/security) -"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/spawner/structure/window/reinforced/indestructable, -/turf/open/floor/plating, -/area/outpost/security) -"Ra" = ( -/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) -"Rb" = ( -/obj/structure/falsewall/reinforced, -/turf/open/floor/plating, -/area/outpost/vacant_rooms/office) -"Rj" = ( -/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) -"Rm" = ( -/obj/structure/chair/sofa/corner{ - dir = 8 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"Rn" = ( -/obj/structure/table, -/obj/item/stack/wrapping_paper, -/turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/vacant_rooms) -"Rp" = ( -/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) -"Rq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/closed/indestructible/reinforced, -/area/outpost/maintenance/central) -"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) -"Ry" = ( -/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) -"Rz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"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) -"RO" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"RS" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"RU" = ( -/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) -"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) -"RX" = ( -/obj/effect/turf_decal/corner/opaque/brown/full, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"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) -"Sh" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"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) -"Sj" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 5 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/security) -"Sm" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"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) -"Sr" = ( -/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) -"Sv" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/security) -"Sx" = ( -/obj/structure/cable/yellow{ - icon_state = "2-9" - }, -/obj/effect/decal/cleanable/crayon{ - icon_state = "danger"; - pixel_x = 30 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"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" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/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/vacant_rooms) -"SK" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"SP" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance/five, -/turf/open/floor/plasteel/mono, -/area/outpost/vacant_rooms) -"SQ" = ( -/obj/machinery/mineral/unloading_machine{ - input_dir = 2; - output_dir = 1 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"SR" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"SU" = ( -/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) -"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/item/radio/intercom/directional/east, -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/storage) -"SZ" = ( -/obj/structure/railing/corner, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Td" = ( -/obj/structure/bookcase/random, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/library) -"Te" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/central) -"Th" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/cargo/office) -"Tm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/steeldecal/steel_decals6{ - dir = 9 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Tx" = ( -/obj/structure/railing, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 5 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"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) -"TE" = ( -/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) -"TG" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 9 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"TH" = ( -/obj/structure/closet/crate/trashcart, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"TI" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/closed/indestructible/reinforced, -/area/outpost/maintenance/central) -"TK" = ( -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 9 - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/maintenance/fore) -"TM" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"TN" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"TP" = ( -/obj/machinery/newscaster/directional/south, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"TQ" = ( -/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) -"TT" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Ub" = ( -/obj/structure/flora/grass/jungle, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/port) -"Ue" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Uh" = ( -/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) -"Um" = ( -/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) -"Ut" = ( -/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) -"Uw" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/cargo) -"UB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms/office) -"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) -"UF" = ( -/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) -"UG" = ( -/obj/structure/disposalpipe/segment{ - dir = 1 - }, -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"UK" = ( -/obj/machinery/vending/coffee, -/obj/machinery/light/dim/directional/south, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/central) -"UL" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"US" = ( -/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) -"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) -"UX" = ( -/obj/structure/flora/junglebush/large, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/central) -"UZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"Vd" = ( -/obj/structure/flora/grass/jungle, -/obj/effect/spawner/lootdrop/chicken, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/central) -"Vh" = ( -/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/security/brig{ - req_access = list("101") - }, -/turf/open/floor/plasteel/tech, -/area/outpost/security) -"Vi" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/minor/bowler_or_that, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Vj" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 1 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Vo" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 10 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Vp" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"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) -"Vs" = ( -/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) -"Vv" = ( -/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) -"VB" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/cargo) -"VC" = ( -/obj/structure/cable/yellow, -/obj/machinery/power/apc/auto_name/directional/west, -/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) -"VH" = ( -/obj/item/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/newscaster/directional/north, -/obj/machinery/light/dim/directional/east, -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 10 - }, -/obj/item/reagent_containers/food/drinks/dry_ramen, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/central) -"VI" = ( -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/grille/indestructable, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"VL" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/ash, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"VT" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey, -/turf/open/floor/plasteel, -/area/outpost/security) -"VW" = ( -/obj/structure/chair/sofa, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet/green, -/area/outpost/crew/bar) -"Wb" = ( -/obj/machinery/door/airlock/maintenance{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/maintenance/fore) -"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) -"Wh" = ( -/obj/structure/railing, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Wn" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Wp" = ( -/turf/closed/indestructible/rock, -/area/outpost/maintenance/central) -"Wr" = ( -/obj/structure/railing/corner, -/obj/machinery/light/dim/directional/north, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 9 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Ws" = ( -/obj/structure/spider/stickyweb, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"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) -"Wy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"Wz" = ( -/obj/structure/barricade/wooden/crude, -/obj/effect/spawner/structure/window/reinforced/indestructable, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"WB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"WC" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/junglebush/c, -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/central) -"WD" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"WH" = ( -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"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) -"WN" = ( -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"WP" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/port) -"WU" = ( -/obj/structure/disposalpipe/trunk/multiz/down{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/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) -"WX" = ( -/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) -"WY" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/floordetail/tiled, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Xa" = ( -/obj/structure/chair/wood, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"Xd" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/corner/opaque/brown/full, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Xf" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/holosign/barrier/infinite{ - max_integrity = 500 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"Xi" = ( -/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) -"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) -"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) -"Xo" = ( -/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) -"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) -"Xt" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Xu" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Xv" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Xz" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"XE" = ( -/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) -"XF" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/storage) -"XG" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/light/dim/directional/west, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 9 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"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) -"XK" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/outpost/crew/bar) -"XN" = ( -/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) -"XO" = ( -/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) -"XQ" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"XR" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"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) -"Yc" = ( -/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) -"Yd" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/hallway/central) -"Yg" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Yn" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"Yu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew/bar) -"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) -"Yz" = ( -/obj/machinery/power/smes/magical{ - name = "power relay" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"YA" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"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/effect/turf_decal/corner/opaque/grey/full, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"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) -"YH" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/turf_decal/corner/opaque/neutral, -/obj/structure/sign/poster/random{ - pixel_x = 28 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"YI" = ( -/obj/structure/spider/stickyweb, -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"YL" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/food/snacks/grown/citrus/orange, -/obj/effect/spawner/lootdrop/salvage_capacitor, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"YN" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/neutral, -/obj/effect/turf_decal/industrial/caution, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"YP" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/floordetail/tiled, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"YS" = ( -/obj/effect/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"YV" = ( -/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) -"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) -"Zd" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid, -/area/outpost/external) -"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/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) -"Zl" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) -"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/turf_decal/corner/opaque/grey/full, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/port) -"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) -"Zx" = ( -/obj/structure/falsewall/reinforced, -/turf/open/floor/plating, -/area/outpost/cargo/office) -"ZB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"ZC" = ( -/obj/structure/rack, -/obj/item/skub, -/turf/open/floor/plasteel/mono, -/area/outpost/vacant_rooms) -"ZD" = ( -/turf/open/floor/grass/ship/jungle, -/area/outpost/hallway/central) -"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) -"ZJ" = ( -/obj/structure/table, -/obj/item/trash/can/food/beans, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/outpost/maintenance/central) -"ZL" = ( -/obj/structure/chair/pew{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ZM" = ( -/turf/closed/indestructible/wood, -/area/outpost/crew/bar) -"ZP" = ( -/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) -"ZQ" = ( -/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) -"ZU" = ( -/obj/structure/chair/sofa/right{ - dir = 8 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/crew/bar) -"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 @@ -8577,7 +5917,1360 @@ mC mC mC "} -(2,1,1) = {" +(2,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(3,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(4,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(5,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(6,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(7,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(8,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(9,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(10,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(11,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(12,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(13,1,1) = {" mC mC mC @@ -8700,7 +7393,7 @@ mC mC mC "} -(3,1,1) = {" +(14,1,1) = {" mC mC mC @@ -8823,7 +7516,7 @@ mC mC mC "} -(4,1,1) = {" +(15,1,1) = {" mC mC mC @@ -8946,7 +7639,7 @@ mC mC mC "} -(5,1,1) = {" +(16,1,1) = {" mC mC mC @@ -9069,7 +7762,7 @@ mC mC mC "} -(6,1,1) = {" +(17,1,1) = {" mC mC mC @@ -9192,7 +7885,7 @@ mC mC mC "} -(7,1,1) = {" +(18,1,1) = {" mC mC mC @@ -9315,7 +8008,7 @@ mC mC mC "} -(8,1,1) = {" +(19,1,1) = {" mC mC mC @@ -9438,7 +8131,7 @@ mC mC mC "} -(9,1,1) = {" +(20,1,1) = {" mC mC mC @@ -9561,7 +8254,7 @@ mC mC mC "} -(10,1,1) = {" +(21,1,1) = {" mC mC mC @@ -9684,7 +8377,7 @@ mC mC mC "} -(11,1,1) = {" +(22,1,1) = {" mC mC mC @@ -9807,7 +8500,7 @@ mC mC mC "} -(12,1,1) = {" +(23,1,1) = {" mC mC mC @@ -9930,7 +8623,7 @@ mC mC mC "} -(13,1,1) = {" +(24,1,1) = {" mC mC mC @@ -10053,7 +8746,7 @@ mC mC mC "} -(14,1,1) = {" +(25,1,1) = {" mC mC mC @@ -10176,7 +8869,7 @@ mC mC mC "} -(15,1,1) = {" +(26,1,1) = {" mC mC mC @@ -10299,7 +8992,7 @@ mC mC mC "} -(16,1,1) = {" +(27,1,1) = {" mC mC mC @@ -10422,7 +9115,7 @@ mC mC mC "} -(17,1,1) = {" +(28,1,1) = {" mC mC mC @@ -10545,7 +9238,7 @@ mC mC mC "} -(18,1,1) = {" +(29,1,1) = {" mC mC mC @@ -10668,7 +9361,99 @@ mC mC mC "} -(19,1,1) = {" +(30,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +Or +pD +pD +pD +pD +pD +pD +Or +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC mC mC mC @@ -10698,6 +9483,22 @@ mC mC mC mC +"} +(31,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC mC mC mC @@ -10748,6 +9549,21 @@ mC mC mC mC +Or +Or +fC +ov +Ik +Ik +bT +jD +Or +Or +mC +mC +mC +mC +mC mC mC mC @@ -10791,7 +9607,12 @@ mC mC mC "} -(20,1,1) = {" +(32,1,1) = {" +mC +mC +mC +mC +mC mC mC mC @@ -10851,6 +9672,17 @@ mC mC mC mC +Or +ec +es +Qk +nE +nE +XM +EB +Zi +Or +mC mC mC mC @@ -10897,6 +9729,8 @@ mC mC mC mC +"} +(33,1,1) = {" mC mC mC @@ -10913,8 +9747,6 @@ mC mC mC mC -"} -(21,1,1) = {" mC mC mC @@ -10962,6 +9794,18 @@ mC mC mC mC +Or +Or +Or +ys +bo +wF +Ep +NH +af +Or +Or +Or mC mC mC @@ -11008,6 +9852,8 @@ mC mC mC mC +"} +(34,1,1) = {" mC mC mC @@ -11036,8 +9882,6 @@ mC mC mC mC -"} -(22,1,1) = {" mC mC mC @@ -11072,6 +9916,19 @@ mC mC mC mC +Or +Or +gK +YK +TB +PR +rB +rB +FB +FQ +Ov +vf +Or mC mC mC @@ -11118,6 +9975,8 @@ mC mC mC mC +"} +(35,1,1) = {" mC mC mC @@ -11159,8 +10018,6 @@ mC mC mC mC -"} -(23,1,1) = {" mC mC mC @@ -11182,6 +10039,20 @@ mC mC mC mC +Or +Sp +Ww +sa +GJ +uG +rt +rt +tL +HH +lZ +lj +Or +Or mC mC mC @@ -11227,6 +10098,8 @@ mC mC mC mC +"} +(36,1,1) = {" mC mC mC @@ -11282,8 +10155,6 @@ mC mC mC mC -"} -(24,1,1) = {" mC mC mC @@ -11291,6 +10162,20 @@ mC mC mC mC +Or +pP +Rd +tg +xa +nf +du +KQ +Ou +Oz +Rk +kY +GA +Or mC mC mC @@ -11336,6 +10221,8 @@ mC mC mC mC +"} +(37,1,1) = {" mC mC mC @@ -11396,6 +10283,22 @@ mC mC mC mC +Or +Or +Or +BF +Rk +kW +ng +Qh +Qh +Qh +Qh +Yo +Nl +Rk +oq +Or mC mC mC @@ -11405,8 +10308,6 @@ mC mC mC mC -"} -(25,1,1) = {" mC mC mC @@ -11443,6 +10344,8 @@ mC mC mC mC +"} +(38,1,1) = {" mC mC mC @@ -11502,6 +10405,24 @@ 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 @@ -11528,8 +10449,6 @@ mC mC mC mC -"} -(26,1,1) = {" mC mC mC @@ -11548,6 +10467,8 @@ mC mC mC mC +"} +(39,1,1) = {" mC mC mC @@ -11607,6 +10528,24 @@ 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 @@ -11652,8 +10591,7 @@ mC mC mC "} -(27,1,1) = {" -mC +(40,1,1) = {" mC mC mC @@ -11705,22 +10643,32 @@ mC mC mC mC -NH -vG -NH -NH mC mC mC mC mC mC -NH -NH -NH -NH mC mC +zq +kJ +Qk +Zt +PV +yh +JM +je +tr +ti +ti +ED +mn +Of +du +Ld +cx +Or mC mC mC @@ -11765,6 +10713,8 @@ mC mC mC mC +"} +(41,1,1) = {" mC mC mC @@ -11774,8 +10724,6 @@ mC mC mC mC -"} -(28,1,1) = {" mC mC mC @@ -11826,11 +10774,28 @@ 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 mC -rt mC mC mC @@ -11839,7 +10804,6 @@ mC mC mC mC -rt mC mC mC @@ -11872,6 +10836,8 @@ mC mC mC mC +"} +(42,1,1) = {" mC mC mC @@ -11897,8 +10863,6 @@ mC mC mC mC -"} -(29,1,1) = {" mC mC mC @@ -11933,6 +10897,24 @@ 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 @@ -11942,8 +10924,6 @@ mC mC mC mC -Bw -Bw mC mC mC @@ -11953,7 +10933,6 @@ mC mC mC mC -rt mC mC mC @@ -11962,7 +10941,6 @@ mC mC mC mC -rt mC mC mC @@ -11981,6 +10959,8 @@ mC mC mC mC +"} +(43,1,1) = {" mC mC mC @@ -12020,8 +11000,6 @@ mC mC mC mC -"} -(30,1,1) = {" mC mC mC @@ -12042,6 +11020,24 @@ 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 @@ -12058,25 +11054,16 @@ mC mC mC mC -Bw -Bw -Bw mC mC mC mC -Bw -Bw -Bw mC mC mC mC -Bw -Bw mC mC -rt mC mC mC @@ -12085,7 +11072,6 @@ mC mC mC mC -rt mC mC mC @@ -12096,6 +11082,8 @@ mC mC mC mC +"} +(44,1,1) = {" mC mC mC @@ -12143,8 +11131,6 @@ mC mC mC mC -"} -(31,1,1) = {" mC mC mC @@ -12157,6 +11143,24 @@ 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 @@ -12179,27 +11183,13 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC mC -Bw -Bw -Bw -Bw mC -Bw -Bw -Bw mC mC -rt mC mC mC @@ -12208,7 +11198,6 @@ mC mC mC mC -rt mC mC mC @@ -12216,6 +11205,8 @@ mC mC mC mC +"} +(45,1,1) = {" mC mC mC @@ -12266,8 +11257,6 @@ mC mC mC mC -"} -(32,1,1) = {" mC mC mC @@ -12277,6 +11266,22 @@ mC mC mC mC +wL +pm +Ck +ga +rZ +wL +xs +RV +sO +wL +xQ +ZE +yK +RC +ve +wL mC mC mC @@ -12300,38 +11305,10 @@ mC mC mC mC -Bw mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -cC -Bw -Cc -je -je -je -je -Cc -Bw -cC mC mC mC @@ -12351,6 +11328,8 @@ mC mC mC mC +"} +(46,1,1) = {" mC mC mC @@ -12389,8 +11368,6 @@ mC mC mC mC -"} -(33,1,1) = {" mC mC mC @@ -12412,6 +11389,22 @@ mC mC mC mC +wL +Ry +Hi +BJ +zL +sk +Mk +ns +Xc +tB +Ev +Ps +Qt +jS +xn +wL mC mC mC @@ -12422,46 +11415,12 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC -Bw -Bw -Bw -Bw -ZM -ZM -ZM -ZM -Bw -Bw -Bw -ZM -Cl -XR -XR -tQ -ZM -ZM -ZM -Bw mC mC mC mC mC -NH mC mC mC @@ -12492,6 +11451,8 @@ mC mC mC mC +"} +(47,1,1) = {" mC mC mC @@ -12512,8 +11473,6 @@ mC mC mC mC -"} -(34,1,1) = {" mC mC mC @@ -12545,50 +11504,30 @@ mC mC mC mC -Bw -Bw -Bw -Bw -WH -WH -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -ZM -oc -Hw -ZM -ZM -Bw -Bw -ZM -MK -LM -FW -uZ -wk -Or -ZM -Bw -Bw mC mC mC mC -NH mC mC mC mC +wL +MO +BE +fV +tZ +ry +Hg +uv +wa +Td +iB +wR +gJ +ZO +CT +wL mC mC mC @@ -12636,8 +11575,7 @@ mC mC mC "} -(35,1,1) = {" -mC +(48,1,1) = {" mC mC mC @@ -12667,47 +11605,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -WH -WH -WH -WH -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -qD -na -bH -uN -dP -ZM -ZM -ZM -ZM -fB -yY -aB -uZ -jt -Qr -ZM -Bw -Bw -cC -rt -rt -rt -NH mC mC mC @@ -12738,6 +11635,22 @@ mC mC mC mC +wL +fI +Qf +Gp +GT +wL +vr +RV +Pa +wL +wL +wL +wL +wL +wL +wL mC mC mC @@ -12758,8 +11671,6 @@ mC mC mC mC -"} -(36,1,1) = {" mC mC mC @@ -12786,51 +11697,13 @@ mC mC mC mC +"} +(49,1,1) = {" mC mC -Bw -Bw -Bw -Bw -Bw -WH -WH -WH -WH -WH -Bo -WH -WH -Bw -Bw -Bw -Bw -Bw -Bw -Bw -pR -ZM -ZM -ON -iH -ZM -wt -iX -ZM -yw -Oc -ix -Ce -ZU -Rm -ZM -Bw -Bw -Bw mC mC mC -NH mC mC mC @@ -12881,12 +11754,26 @@ mC mC mC mC -"} -(37,1,1) = {" mC mC mC mC +wL +rV +cs +ZE +ZY +wL +EY +ZV +AM +sB +iw +rS +Zu +rS +KH +wL mC mC mC @@ -12911,49 +11798,10 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Kj -WH -CU -WH -qa -oX -WH -WH -WH -Bw -Bw -yI -yI -jz -Er -Pn -GW -kr -ZM -ZM -Ek -ZM -rA -yJ -ZM -ZM -Um -ZM -ZM -ZM -ZM -ZM -Bw -Bw mC mC mC mC -NH mC mC mC @@ -12972,6 +11820,8 @@ mC mC mC mC +"} +(50,1,1) = {" mC mC mC @@ -13004,8 +11854,6 @@ mC mC mC mC -"} -(38,1,1) = {" mC mC mC @@ -13033,45 +11881,22 @@ mC mC mC mC -Bw -Bw -Bw -Bw -eb -IM -Kj -kf -TM -TM -BC -TM -BW -Bw -uU -uU -IQ -uU -uU -uU -Tm -yI -SU -ZM -lD -LT -ru -eh -Eu -fl -Ee -kO -Gs -ZM -KK -ZM -Bw -Bw -Bw +wL +jW +ai +Sc +xo +wL +uX +sI +Ne +pt +et +UU +UU +Tk +pG +wL mC mC mC @@ -13118,6 +11943,8 @@ mC mC mC mC +"} +(51,1,1) = {" mC mC mC @@ -13127,8 +11954,6 @@ mC mC mC mC -"} -(39,1,1) = {" mC mC mC @@ -13155,47 +11980,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -WH -VL -sc -tX -WH -WH -Bw -uU -ja -uU -uU -fP -fP -uU -Ib -uU -xZ -zR -mx -ZM -cJ -FB -nt -ic -dT -qG -qJ -OL -zq -xW -Qk -ZM -ZM -ZM -ZM -Cc mC mC mC @@ -13220,6 +12004,22 @@ mC mC mC mC +wL +wL +wL +wL +wL +wL +WV +LD +lk +wL +jU +MF +nT +dq +HL +wL mC mC mC @@ -13250,8 +12050,6 @@ mC mC mC mC -"} -(40,1,1) = {" mC mC mC @@ -13268,6 +12066,8 @@ mC mC mC mC +"} +(52,1,1) = {" mC mC mC @@ -13278,47 +12078,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -WH -Bo -dG -TM -Gi -Bo -WH -Bw -uU -Ge -yc -js -Bq -aK -uU -Yz -uU -YL -AP -tP -ZM -Jf -FB -qM -Fi -Yu -Xa -ty -Oy -yx -ZM -ZM -ZM -PV -yh -JM -je mC mC mC @@ -13369,12 +12128,25 @@ mC mC mC mC +wL +sL +Ob +uW +YR +gz +LD +fk +wL +Ru +lH +nz +LP +ar +wL mC mC mC mC -"} -(41,1,1) = {" mC mC mC @@ -13400,48 +12172,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -WH -WH -tX -WH -WH -WH -WH -Bw -uU -zd -wM -uU -cr -kp -uU -mD -uU -uU -uU -uU -Cc -ju -mm -PO -QI -XK -eI -Jv -Yu -wc -ZM -Hh -iY -FB -VW -Bu -je mC mC mC @@ -13459,6 +12189,8 @@ mC mC mC mC +"} +(53,1,1) = {" mC mC mC @@ -13496,8 +12228,6 @@ mC mC mC mC -"} -(42,1,1) = {" mC mC mC @@ -13511,6 +12241,31 @@ 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 @@ -13523,48 +12278,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -WH -qa -Zd -WH -Bw -Bw -WH -Bw -uU -cr -uU -uU -Uh -uU -uU -bz -HN -Lh -iz -ed -Cc -HA -FB -zI -ZQ -Wy -tJ -hE -nr -hk -jI -Wd -iY -FB -VW -uF -je mC mC mC @@ -13599,6 +12312,8 @@ mC mC mC mC +"} +(54,1,1) = {" mC mC mC @@ -13619,8 +12334,6 @@ mC mC mC mC -"} -(43,1,1) = {" mC mC mC @@ -13646,52 +12359,36 @@ mC mC mC mC -Bw -Bw -Bw -Bw -WH -WH -WH -WH -Bw -Bw -uU -IQ -uU -uU -tk -Qo -uU -Ew -Gb -aX -uU -CK -dz -tM -WU -Cc -eC -cf -AZ -Ed -JI -bd -wO -ko -Oy -ZM -yH -AT -jT -aZ -Ba -je 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 @@ -13738,12 +12435,12 @@ mC mC mC mC +"} +(55,1,1) = {" mC mC mC mC -"} -(44,1,1) = {" mC mC mC @@ -13769,48 +12466,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -WH -WH -WH -Bw -uU -uU -pb -Xu -uU -eB -wA -uU -ts -mV -hK -uU -uU -Wb -uU -uU -Cc -ZM -ZM -ZM -ZM -ZM -UF -ZM -ZM -ZM -ZM -ZM -ZM -Cc -Cc -Cc -Cc mC mC mC @@ -13831,6 +12486,32 @@ 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 mC @@ -13865,8 +12546,6 @@ mC mC mC mC -"} -(45,1,1) = {" mC mC mC @@ -13879,6 +12558,8 @@ mC mC mC mC +"} +(56,1,1) = {" mC mC mC @@ -13892,52 +12573,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -uU -IQ -uU -uU -uU -td -NE -IR -uU -gx -us -uU -jb -fL -wE -aO -wi -pE -Rp -oy -uU -iM -XN -Xt -AU -YV -ih -WY -pm -pm -pm -ga -ga -rZ -BL -Yd -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -13974,6 +12609,32 @@ 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 @@ -13988,8 +12649,6 @@ mC mC mC mC -"} -(46,1,1) = {" mC mC mC @@ -14016,63 +12675,17 @@ mC mC mC mC -Bw -Bw -Bw -Bw -uU -Pg -Pg -Pg -uU -uU -Cr -zQ -uU -uU -cr -VI -mZ -Hu -Ab -uU -CZ -fw -gq -TK -JT -NR -fO -mq -rj -rj -qw -ku -Hi -BJ -Ry -Hi -BJ -zL -sk -Yd -mo -mo -mo -mo -Bw -Bw mC mC mC mC mC mC +"} +(57,1,1) = {" mC mC mC -Bw -Bw mC mC mC @@ -14111,13 +12724,40 @@ mC mC mC mC -"} -(47,1,1) = {" mC 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 @@ -14139,53 +12779,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -uU -yI -Es -vF -Hn -uu -Hn -Hz -Qx -Lb -KC -uU -PS -uU -uU -uU -nH -nH -nH -nH -nH -nH -lV -zu -Yd -VH -rO -ZL -ZL -Im -MO -BE -Yd -tZ -ry -Yd -uv -wa -Td -mo -Bw -Bw -Bw mC mC mC @@ -14193,10 +12786,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw mC mC mC @@ -14215,6 +12804,8 @@ mC mC mC mC +"} +(58,1,1) = {" mC mC mC @@ -14234,8 +12825,6 @@ mC mC mC mC -"} -(48,1,1) = {" mC mC mC @@ -14263,63 +12852,34 @@ mC mC mC mC -Bw -Bw -Bw -uU -Ws -IX -aa -uU -uU -uU -uU -Vp -sQ -Gd -uU -eU -Qx -dZ -sQ -nH -so -ha -uD -TQ -nH -in -Ue -Yd -Yd -fI -fI -fI -fI -fI +GM +YI +rE +GM +Si +ki +Yb +Oa +TW +wL +Qj +vX +vX +Xl +wL +HP +AY +kA Yd +XI +ia +XI Yd -GT -pJ +Rt +QA +EI Yd -KT -Pa -hq -mo -mo -mo -cC -mC -mC -mC -Bw -Bw mC -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -14357,10 +12917,6 @@ mC mC mC mC -"} -(49,1,1) = {" -mC -mC mC mC mC @@ -14371,6 +12927,8 @@ mC mC mC mC +"} +(59,1,1) = {" mC mC mC @@ -14386,63 +12944,6 @@ mC mC mC mC -Bw -Bw -Bw -uU -NZ -th -SK -uU -Dp -bQ -uU -uU -uU -uU -uU -lN -Ab -RO -nH -nH -QN -gC -gC -kU -nH -ln -tx -Yd -hZ -Vd -WC -gi -Qu -ai -cs -Yd -ZY -YS -Yd -mo -AM -sB -iw -rS -Zu -mo -ck -ck -mo -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -14474,14 +12975,39 @@ 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 mC mC mC -"} -(50,1,1) = {" mC mC mC @@ -14509,60 +13035,6 @@ mC mC mC mC -Bw -Bw -Bw -uU -uU -Xz -uU -uU -JP -yc -tp -DH -zV -NV -uU -WX -fP -Xv -LB -zH -fs -HF -yi -Jg -nH -tc -WD -bf -Zh -ai -Qu -UX -gi -ai -ai -Yd -xo -fK -uX -mo -Ne -pt -et -Ad -UU -mo -pG -cT -mo -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -14578,6 +13050,8 @@ mC mC mC mC +"} +(60,1,1) = {" mC mC mC @@ -14603,8 +13077,6 @@ mC mC mC mC -"} -(51,1,1) = {" mC mC mC @@ -14626,6 +13098,33 @@ mC 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 @@ -14633,58 +13132,6 @@ mC mC mC mC -Bw -Bw -Bw -uU -si -dU -uU -RO -uU -uU -uU -Oe -wJ -uU -uU -uU -Xv -nH -aI -HQ -mN -XF -Ra -jo -yF -oN -Yd -BV -ai -ai -gi -gi -ZD -Vd -Yd -tO -Xi -WV -mo -lk -wX -jU -MF -nT -mo -HL -Pf -mo -Bw -Bw -Bw -Bw mC mC mC @@ -14727,13 +13174,7 @@ mC mC mC "} -(52,1,1) = {" -mC -mC -mC -mC -mC -mC +(61,1,1) = {" mC mC mC @@ -14756,57 +13197,6 @@ mC mC mC mC -Bw -Bw -Bw -uU -As -Mv -PP -jJ -uU -TH -Vi -uU -RO -sQ -zB -uU -RO -nH -nH -zz -wz -pM -Av -nH -Cz -po -Yd -Yd -fI -fI -fI -fI -fI -Yd -Yd -uW -Xi -gz -mo -fk -Fr -Ru -lH -nz -LP -ar -El -mo -Bw -Bw -Bw mC mC mC @@ -14829,6 +13219,39 @@ 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 +Yd +Yd +Yd mC mC mC @@ -14849,8 +13272,6 @@ mC mC mC mC -"} -(53,1,1) = {" mC mC mC @@ -14875,60 +13296,12 @@ mC mC mC mC +"} +(62,1,1) = {" mC mC mC mC -Bw -Bw -Bw -uU -Mc -yI -gv -iS -uU -Gb -Gb -uU -RO -fn -me -Ml -KC -Gb -nH -MJ -iU -IE -IE -nH -qq -uf -Yd -lG -jX -Ns -Ns -Ns -Mq -rG -Yd -rK -kQ -Yd -mo -sO -mo -mo -mo -mo -mo -mo -mo -mo -Bw -Bw mC mC mC @@ -14969,11 +13342,45 @@ 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 -"} -(54,1,1) = {" mC mC mC @@ -15002,56 +13409,6 @@ mC mC mC mC -Bw -Bw -Bw -uU -uU -IQ -uU -uU -uU -wS -Em -pW -gA -Qx -KC -uU -Xu -Gb -nH -mf -MJ -SW -OT -nH -om -cl -vX -vX -rj -fg -cc -YE -kk -vX -GK -mp -xM -vr -LD -GU -ox -NT -Nc -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -15062,6 +13419,8 @@ mC mC mC mC +"} +(63,1,1) = {" mC mC mC @@ -15095,8 +13454,6 @@ mC mC mC mC -"} -(55,1,1) = {" mC mC mC @@ -15108,6 +13465,42 @@ 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 @@ -15124,58 +13517,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -WH -WH -WH -Bw -uU -Lt -XE -uU -ja -uU -uU -uU -uU -uU -nH -nH -nH -nH -nH -nH -XO -WM -Df -Ki -RU -ZE -KS -Rv -zT -kR -nK -qT -mi -HR -or -cg -PM -NT -Nc -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -15201,6 +13542,8 @@ mC mC mC mC +"} +(64,1,1) = {" mC mC mC @@ -15218,8 +13561,6 @@ mC mC mC mC -"} -(56,1,1) = {" mC mC mC @@ -15247,59 +13588,42 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -WH -MQ -WH -uU -uU -uU -uU -uU -RS -Vj -Iz -VC -yI -Mg -uU -Vp -uU -uk -IY -vV -tC -uc -uc -uc -uc -Nz -HG -Bj +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 -em -AI -em -em -em -gO -Ng -Ng -Ng -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw +Xm +te +LO +KU +GM mC mC mC @@ -15342,14 +13666,7 @@ mC mC mC "} -(57,1,1) = {" -mC -mC -mC -mC -mC -mC -mC +(65,1,1) = {" mC mC mC @@ -15369,62 +13686,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -WH -WH -WH -uU -Is -xF -wo -uU -rY -uU -Xz -Yn -rm -Zl -uU -Fj -uU -GM -tT -uc -uc -uc -uj -uj -Ez -SC -uL -Xl -UK -em -lA -Sm -em -dW -em -Ix -ND -Id -Ng -Ng -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -15450,6 +13711,42 @@ 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 @@ -15464,8 +13761,6 @@ mC mC mC mC -"} -(58,1,1) = {" mC mC mC @@ -15491,65 +13786,10 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bo -WH -WH -uU -Bg -Na -Yg -hW -ak -uU -CH -uU -Gb -Gb -Gb -YI -uU -Iw -Si -uc -uj -Oa -uj -ds -Ez -jg -Fz -KR -Cm -em -zS -kA -Yc -Ls -em -XI -BG -Rt -QA -Ng -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC +"} +(66,1,1) = {" mC mC mC @@ -15587,8 +13827,6 @@ mC mC mC mC -"} -(59,1,1) = {" mC mC mC @@ -15598,6 +13836,37 @@ 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 @@ -15614,63 +13883,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -WH -WH -WH -uU -kq -qk -GN -uU -uU -uU -CH -uU -uU -Gb -uU -nZ -uU -tH -sG -uc -ri -pQ -uj -uj -Ez -Eo -jH -kj -Yd -em -em -em -TI -IU -DV -EG -Eg -dD -Gu -Ng -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -15699,6 +13911,8 @@ mC mC mC mC +"} +(67,1,1) = {" mC mC mC @@ -15710,8 +13924,6 @@ mC mC mC mC -"} -(60,1,1) = {" mC mC mC @@ -15736,64 +13948,8 @@ mC mC mC mC -Bw -Bw -Bw -Bw mC mC -Bw -Bw -Bw -WH -MQ -uU -uU -uU -uU -uU -sQ -sQ -de -WN -uU -uU -Th -Th -Th -Th -Zx -Th -CL -uj -LK -pQ -uc -zv -mA -Qn -hM -ks -ks -GL -em -cU -em -em -em -em -em -em -Wp -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -15803,6 +13959,35 @@ 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 @@ -15833,8 +14018,6 @@ mC mC mC mC -"} -(61,1,1) = {" mC mC mC @@ -15851,6 +14034,8 @@ mC mC mC mC +"} +(68,1,1) = {" mC mC mC @@ -15858,65 +14043,9 @@ mC mC mC mC -Bw -Bw -Bw -Bw mC mC mC -Bw -Bw -Bw -WH -WH -WH -WH -WH -WH -uU -lM -sQ -ay -fp -UG -pU -Th -gP -qH -un -eR -Th -uj -gb -nU -yt -uc -VG -Bp -rb -hM -ks -ks -ks -em -KW -rI -zS -em -iQ -jx -vT -Wp -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -15953,11 +14082,38 @@ 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 -"} -(62,1,1) = {" mC mC mC @@ -15980,65 +14136,10 @@ mC mC mC mC -Bw -Bw -Bw -Bw mC mC mC mC -Bw -Bw -Bw -Bw -WH -WH -WH -Bo -WH -IQ -Gd -sQ -eW -rh -Sx -Md -Th -QR -MB -KV -Th -Th -uj -CL -uj -uj -uc -ms -Bp -QT -hM -ks -ks -ks -em -KM -bb -sr -em -RV -dK -At -Wp -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -16056,6 +14157,8 @@ mC mC mC mC +"} +(69,1,1) = {" mC mC mC @@ -16079,8 +14182,6 @@ mC mC mC mC -"} -(63,1,1) = {" mC mC mC @@ -16103,68 +14204,34 @@ mC mC mC mC -Bw -Bw mC mC mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -WH -Uw -Uw -Uw -Uw -Uw -Uw +wL +rM +nc +IB +wL +Zm +Qc +HZ +YX +wL +Yd +Yd +Yd Uw +jC +bJ +jC Uw -KZ -Th -uQ -MB -Xr -Th -pQ -pQ -uj -pQ -CL -Ez -It -wn -Jr -em -em -em -em -em -NL -ut -em -em -Ao -Vq -Wp -Wp -Bw -Bw -Bw -mC -mC -Bw -Bw -mC -mC -mC -mC +Yd +Yd +Yd +Yd mC mC mC @@ -16202,8 +14269,6 @@ mC mC mC mC -"} -(64,1,1) = {" mC mC mC @@ -16215,6 +14280,8 @@ mC mC mC mC +"} +(70,1,1) = {" mC mC mC @@ -16235,52 +14302,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Uw -Wr -mr -sg -XG -EE -TG -tq -QL -cV -GS -nd -Ow -Th -im -jM -JX -nU -JX -Ez -AU -ls -uy -em -Gf -sn -qL -ZB -Rz -bY -Gf -em -DV -Wp -Wp -em -em -em -Bw -Bw mC mC mC @@ -16312,6 +14333,24 @@ 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 @@ -16325,8 +14364,6 @@ mC mC mC mC -"} -(65,1,1) = {" mC mC mC @@ -16359,51 +14396,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Uw -wy -Rj -Qd -Qd -Qd -SQ -Pb -Cb -cV -vo -Ni -JU -Th -ph -pQ -SV -Ub -ig -Ez -YV -qZ -YP -em -sn -Ap -OY -xX -Mt -ut -KM -em -tU -Gr -Rq -hi -OC -em -Bw -Bw mC mC mC @@ -16411,6 +14403,8 @@ mC mC mC mC +"} +(71,1,1) = {" mC mC mC @@ -16448,8 +14442,6 @@ mC mC mC mC -"} -(66,1,1) = {" mC mC mC @@ -16464,6 +14456,26 @@ 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 @@ -16480,54 +14492,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Uw -PW -fm -fN -Ci -Ci -Wn -op -EQ -cV -cV -Th -ag -Th -uc -uc -uc -GB -uc -uc -sH -iI -OH -em -FF -em -em -em -em -Ct -em -em -sm -tv -em -qS -uq -em -Bw -Bw -Bw mC mC mC @@ -16562,6 +14526,8 @@ mC mC mC mC +"} +(72,1,1) = {" mC mC mC @@ -16571,8 +14537,6 @@ mC mC mC mC -"} -(67,1,1) = {" mC mC mC @@ -16604,53 +14568,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Uw -Tx -fm -bq -dv -RX -hH -hH -Xo -Af -vZ -My -Ip -vm -bL -CI -xi -Jl -GQ -GQ -eq -TA -He -em -WW -em -lX -YC -em -Sn -nM -em -XS -em -em -em -em -em -Bw -Bw -Bw mC mC mC @@ -16673,6 +14590,15 @@ mC mC mC mC +Uw +pF +Fa +pA +KJ +pA +Yv +jn +Uw mC mC mC @@ -16694,8 +14620,6 @@ mC mC mC mC -"} -(68,1,1) = {" mC mC mC @@ -16725,55 +14649,9 @@ mC mC mC mC +"} +(73,1,1) = {" mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Uw -FE -fm -bq -Dh -hc -Pw -Pw -QM -TN -BP -vJ -yq -KX -Sh -dg -EH -oe -dg -dg -AL -Lu -hA -em -jd -em -lx -KM -em -FN -rD -UZ -xy -np -sn -em -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -16817,8 +14695,6 @@ mC mC mC mC -"} -(69,1,1) = {" mC mC mC @@ -16836,6 +14712,17 @@ mC mC mC mC +Uw +Uw +UE +LL +pA +KJ +pA +LL +mT +Uw +Uw mC mC mC @@ -16849,54 +14736,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Uw -Ds -Pb -ni -OP -MT -DC -gj -dj -fE -jP -My -YN -Zm -fb -rM -nc -IB -YH -Zm -Qc -HZ -YX -em -sn -NL -zS -KM -em -bJ -jC -fx -Te -np -is -em -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -16933,6 +14772,8 @@ mC mC mC mC +"} +(74,1,1) = {" mC mC mC @@ -16940,8 +14781,6 @@ mC mC mC mC -"} -(70,1,1) = {" mC mC mC @@ -16973,53 +14812,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Uw -mE -ze -Xd -TE -IG -Pb -nl -Uw -Uw -Uw -uc -WP -hV -uc -wL -wL -wL -wL -wL -pv -Ky -yj -Fg -Fg -Fg -Fg -Rb -em -em -Kz -em -em -em -em -em -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -17041,6 +14833,21 @@ mC mC mC mC +Uw +Uw +Uw +iV +LL +LL +pA +KJ +pA +LL +LL +yV +Uw +Uw +Uw mC mC mC @@ -17063,8 +14870,6 @@ mC mC mC mC -"} -(71,1,1) = {" mC mC mC @@ -17090,6 +14895,8 @@ mC mC mC mC +"} +(75,1,1) = {" mC mC mC @@ -17097,51 +14904,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Uw -MM -Vs -RX -RX -XQ -iT -cY -Uw -Bw -Bw -uc -uc -uc -uc -wL -am -wg -am -wL -sK -kB -DD -iV -KO -Ay -kz -Le -em -KJ -pA -KM -KM -BZ -TT -em -Bw -Bw -Bw -Bw mC mC mC @@ -17186,8 +14948,6 @@ mC mC mC mC -"} -(72,1,1) = {" mC mC mC @@ -17195,6 +14955,23 @@ mC mC mC mC +Uw +Uw +gf +mg +GQ +Ko +Xn +pA +gs +pA +Ko +QD +Wz +xm +Hx +Uw +Uw mC mC mC @@ -17220,50 +14997,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Uw -VB -vq -RX -mb -gL -Fo -Vo -Uw -Bw -Bw -Bw -Bw -Bw -Bw -wL -JK -sz -TP -wL -tN -iv -Zo -iV -JE -UB -pF -Km -Fg -qz -nW -ZJ -jn -tF -SR -em -Bw -Bw -Bw mC mC mC @@ -17285,6 +15018,8 @@ mC mC mC mC +"} +(76,1,1) = {" mC mC mC @@ -17309,8 +15044,6 @@ mC mC mC mC -"} -(73,1,1) = {" mC mC mC @@ -17344,50 +15077,26 @@ mC mC mC mC -Bw -Bw -Bw -Bw Uw -oD -gj -hH -Kv -DI -Fo -yr Uw -Bw -Bw -Bw -Bw -Bw -Bw -wL -am -sz -nb -wL -vQ -lh -Zo -iV -EO -uh -UE -uo -Fg -Ll -Pl -Sr -mT -Ag -mM -em -Bw -Bw -Bw -Bw +gr +QY +QY +EH +PG +PG +ey +Jo +fj +VR +VR +DA +RG +RG +Ku +Uw +Uw +mC mC mC mC @@ -17433,7 +15142,7 @@ mC mC mC "} -(74,1,1) = {" +(77,1,1) = {" mC mC mC @@ -17468,49 +15177,6 @@ mC mC mC mC -Bw -Bw -Bw -Uw -SZ -nj -ao -ao -US -Fo -rs -Uw -Bw -Bw -Bw -Bw -Bw -Bw -wL -vg -IF -ua -zA -gI -Qp -kS -Fg -iV -iV -Fg -Pc -Fg -YA -sn -ah -nN -sn -BZ -em -Bw -Bw -Bw -Bw mC mC mC @@ -17534,6 +15200,25 @@ 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 @@ -17555,8 +15240,6 @@ mC mC mC mC -"} -(75,1,1) = {" mC mC mC @@ -17581,6 +15264,8 @@ mC mC mC mC +"} +(78,1,1) = {" mC mC mC @@ -17592,48 +15277,6 @@ mC mC mC mC -Bw -Bw -Uw -Wh -Pb -Ot -Ot -Ot -sx -JA -Uw -Bw -Bw -Bw -Bw -Bw -wL -wL -wL -wL -wL -wL -pN -fR -Hk -gf -GQ -GQ -Ko -Xn -em -em -Wz -Wz -Wz -Wz -em -em -Bw -Bw -Bw -Bw mC mC mC @@ -17678,10 +15321,27 @@ mC mC mC mC -"} -(76,1,1) = {" mC mC +Uw +Am +LL +LL +QD +Ze +iG +iG +lK +FM +iF +iG +iG +Wt +cW +LL +LL +dt +Uw mC mC mC @@ -17711,53 +15371,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Uw -BK -hL -hL -sU -Gj -hL -nv -Uw -Bw -Bw -Bw -wL -wL -wL -SE -qo -uM -Vv -yz -ta -kK -gr -YD -dg -EH -lr -PG -ey -Jo -DA -DA -DA -DA -ep -RG -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -17774,6 +15387,8 @@ mC mC mC mC +"} +(79,1,1) = {" mC mC mC @@ -17801,8 +15416,6 @@ mC mC mC mC -"} -(77,1,1) = {" mC mC mC @@ -17833,66 +15446,25 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Uw -Uw -Uw -Uw Uw -Uw -Uw -Uw -Uw -Bw -Bw -Bw -wL -Op -gE -rP -Pm -SP -WB -wL -MC -Et -kb -ym -cK +EW +pA +pA +pA Ze -Ol -Xf -mB -RY -Wt -xY iG -Wt -Yv -RG -Bw -Bw -Bw -Bw -Bw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC +xc +LG +Kn +EK +pe +iG +Eh +Cd +Cd +Cd +gm +Uw mC mC mC @@ -17924,8 +15496,6 @@ mC mC mC mC -"} -(78,1,1) = {" mC mC mC @@ -17940,6 +15510,8 @@ mC mC mC mC +"} +(80,1,1) = {" mC mC mC @@ -17957,54 +15529,7 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC -pr -Nn -Rn -rP -Ca -no -Ut -wL -ol -Am -Dv -Dv -Dv -Dv -zb -Dv -Dv -Dv -Dv -Dv -Dv -Dv -Dv -Dv -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -18044,11 +15569,28 @@ 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 -"} -(79,1,1) = {" mC mC mC @@ -18082,52 +15624,7 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC -pr -he -he -rP -tI -ZC -TP -wL -Dv -Dv -Dv -ZP -Ic -Pk -zC -hI -Dv -Kn -EK -Dv -kv -Eh -Cd -Dv -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -18136,6 +15633,8 @@ mC mC mC mC +"} +(81,1,1) = {" mC mC mC @@ -18170,8 +15669,6 @@ mC mC mC mC -"} -(80,1,1) = {" mC mC mC @@ -18195,6 +15692,25 @@ 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 @@ -18205,51 +15721,9 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -cC -Bw -Bw -Bw -Bw mC mC mC -pr -pr -wL -cL -mk -BX -zf -bK -Sj -Pu -Dv -tR -fZ -kx -gD -Qw -Dv -NU -cz -Dv -sb -hI -Cd -Dv -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -18282,6 +15756,8 @@ mC mC mC mC +"} +(82,1,1) = {" mC mC mC @@ -18293,8 +15769,6 @@ mC mC mC mC -"} -(81,1,1) = {" mC mC mC @@ -18328,51 +15802,38 @@ mC mC mC mC -Bw -Bw mC -Bw mC mC mC mC -rt mC mC mC mC mC -NH mC mC mC -wL -UL -iA -wL -wL -wL -Kl -NF -QP -st -fZ -vU -gD -Gw -Ft -Gw -Gw +Uw +dY +Pj +cC +Do +Ze +iG +Qw +cz +cz +cz Vh -Sv +iG hI -Dv -Dv +qc +JL cC -Bw -Bw -Bw -Bw +TY +Uw mC mC mC @@ -18416,10 +15877,10 @@ mC mC mC mC -"} -(82,1,1) = {" mC mC +"} +(83,1,1) = {" mC mC mC @@ -18450,53 +15911,16 @@ mC mC mC mC -Bw -Bw mC mC mC mC mC -NH -NH -NH -NH -NH mC mC mC -NH mC mC -Bw -wL -wL -wL -wL -Bw -wL -tt -dY -Dv -NB -zY -aF -zY -zY -Dv -ca -fH -Dv -bS -VT -QY -JL -Dv -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -18514,6 +15938,25 @@ 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 @@ -18539,8 +15982,6 @@ mC mC mC mC -"} -(83,1,1) = {" mC mC mC @@ -18561,6 +16002,8 @@ mC mC mC mC +"} +(84,1,1) = {" mC mC mC @@ -18572,8 +16015,6 @@ mC mC mC mC -Bw -Bw mC mC mC @@ -18588,38 +16029,9 @@ mC mC mC mC -NH -rt -cC -Bw -Bw -Bw -Bw -Bw -Bw -wL -Dv -Dv -Dv -Dv -QY -QY -QY -Dv -Dv -Dv -Dv -Dv -bv -VT -QY -NF -QY mC mC mC -Bw -Bw mC mC mC @@ -18649,6 +16061,25 @@ 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 @@ -18662,8 +16093,6 @@ mC mC mC mC -"} -(84,1,1) = {" mC mC mC @@ -18696,6 +16125,8 @@ mC mC mC mC +"} +(85,1,1) = {" mC mC mC @@ -18711,39 +16142,11 @@ mC mC mC mC -NH mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -mC -mC -mC -Bw -Bw -Bw -Bw -Dv -Fa -EM -gB -LL -QY mC mC mC mC -Bw -Bw mC mC mC @@ -18781,12 +16184,29 @@ mC mC mC mC +Uw +Ko +WI +LL +qi +ya +LL +su +VE +zW +Re +an +LL +EM +Ko +kb +kb +QD +Uw mC mC mC mC -"} -(85,1,1) = {" mC mC mC @@ -18828,6 +16248,8 @@ mC mC mC mC +"} +(86,1,1) = {" mC mC mC @@ -18836,37 +16258,14 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC mC mC -Bw -Bw -Bw -Dv -kl -QY -Dv -Dv -Dv -Bw mC mC mC -Bw -Bw mC mC mC @@ -18908,8 +16307,25 @@ mC mC mC mC -"} -(86,1,1) = {" +Uw +Uw +qP +Cd +Cd +VV +LL +su +cC +cC +cC +an +LL +gX +Cd +hv +yy +Uw +Uw mC mC mC @@ -18955,41 +16371,19 @@ mC mC mC mC +"} +(87,1,1) = {" mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC mC mC -Bw -Bw -Bw -Dv -rd -gX -Dv -Bw -Bw -Bw mC mC mC mC -Bw mC mC mC @@ -19031,14 +16425,29 @@ mC mC mC mC -"} -(87,1,1) = {" mC mC mC mC mC mC +Uw +Uw +Hx +jk +QK +Ko +hx +Qe +cC +cC +lz +Oj +EM +jk +zp +Uw +Uw mC mC mC @@ -19079,36 +16488,15 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC +"} +(88,1,1) = {" mC -Bw -Bw -Bw -Dv -QY -QY -Dv -Bw -Bw -Bw -Bw mC mC mC @@ -19154,8 +16542,6 @@ mC mC mC mC -"} -(88,1,1) = {" mC mC mC @@ -19169,6 +16555,21 @@ mC mC mC mC +Uw +Uw +Uw +mG +Ac +ID +wr +cC +Ud +ME +oV +KD +Uw +Uw +Uw mC mC mC @@ -19201,40 +16602,23 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC mC mC -Bw -Bw -Bw -Bw -Bw mC mC mC mC -Bw -Bw -Bw mC mC mC -Bw -Bw -Bw -Bw -Bw mC mC mC +"} +(89,1,1) = {" mC mC mC @@ -19277,8 +16661,6 @@ mC mC mC mC -"} -(89,1,1) = {" mC mC mC @@ -19298,6 +16680,17 @@ mC mC mC mC +Uw +Uw +LI +lP +py +NX +rF +pY +tK +Uw +Uw mC mC mC @@ -19326,35 +16719,18 @@ mC mC mC mC -Bw -Bw -Bw mC mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC -Bw -Bw -NX -Bw mC mC mC mC -Bw -Bw -Bw -Bw mC mC mC @@ -19364,6 +16740,8 @@ mC mC mC mC +"} +(90,1,1) = {" mC mC mC @@ -19400,8 +16778,6 @@ mC mC mC mC -"} -(90,1,1) = {" mC mC mC @@ -19428,6 +16804,15 @@ mC mC mC mC +Uw +Uw +Uw +Uw +Uw +Uw +Uw +Uw +Uw mC mC mC @@ -19450,27 +16835,14 @@ mC mC mC mC -Bw -Bw mC mC mC mC -Bw -Bw -Bw -Bw -Bw -Bw -Bw -Bw mC mC mC mC -Bw -Bw -Bw mC mC mC @@ -19491,6 +16863,8 @@ mC mC mC mC +"} +(91,1,1) = {" mC mC mC @@ -19523,8 +16897,6 @@ mC mC mC mC -"} -(91,1,1) = {" mC mC mC @@ -19579,11 +16951,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw -Bw mC mC mC @@ -19592,9 +16959,6 @@ mC mC mC mC -Bw -Bw -Bw mC mC mC @@ -19622,6 +16986,8 @@ mC mC mC mC +"} +(92,1,1) = {" mC mC mC @@ -19646,8 +17012,6 @@ mC mC mC mC -"} -(92,1,1) = {" mC mC mC @@ -19702,10 +17066,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw mC mC mC @@ -19716,8 +17076,6 @@ mC mC mC mC -Bw -Bw mC mC mC @@ -19751,6 +17109,8 @@ mC mC mC mC +"} +(93,1,1) = {" mC mC mC @@ -19769,8 +17129,6 @@ mC mC mC mC -"} -(93,1,1) = {" mC mC mC @@ -19825,10 +17183,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw mC mC mC @@ -19878,6 +17232,8 @@ mC mC mC mC +"} +(94,1,1) = {" mC mC mC @@ -19892,8 +17248,6 @@ mC mC mC mC -"} -(94,1,1) = {" mC mC mC @@ -19948,9 +17302,6 @@ mC mC mC mC -Bw -Bw -Bw mC mC mC @@ -20004,6 +17355,8 @@ mC mC mC mC +"} +(95,1,1) = {" mC mC mC @@ -20015,8 +17368,6 @@ mC mC mC mC -"} -(95,1,1) = {" mC mC mC @@ -20070,10 +17421,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw mC mC mC @@ -20131,6 +17478,8 @@ mC mC mC mC +"} +(96,1,1) = {" mC mC mC @@ -20138,8 +17487,6 @@ mC mC mC mC -"} -(96,1,1) = {" mC mC mC @@ -20193,10 +17540,6 @@ mC mC mC mC -Bw -Bw -Bw -Bw mC mC mC @@ -20258,11 +17601,11 @@ mC mC mC mC +"} +(97,1,1) = {" mC mC mC -"} -(97,1,1) = {" mC mC mC @@ -20316,9 +17659,6 @@ mC mC mC mC -Bw -Bw -Bw mC mC mC @@ -20439,9 +17779,9 @@ mC mC mC mC -Bw -Bw -Bw +mC +mC +mC mC mC mC @@ -20562,7 +17902,7 @@ mC mC mC mC -Bw +mC mC mC mC diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index 5af450ce3e0d..e127c600d71e 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -580,13 +580,16 @@ 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" = ( @@ -868,7 +871,6 @@ /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" = ( @@ -996,7 +998,7 @@ /area/outpost/maintenance/fore) "dO" = ( /obj/effect/turf_decal/snow, -/obj/effect/turf_decal/weather/snow{ +/obj/effect/turf_decal/weather/snow/corner{ dir = 8 }, /turf/open/floor/concrete/reinforced, @@ -1724,7 +1726,6 @@ /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" = ( @@ -2096,7 +2097,6 @@ /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{ +/obj/effect/turf_decal/weather/snow/corner{ dir = 9 }, /turf/open/floor/plating/asteroid/snow/under/lit, @@ -3514,7 +3514,6 @@ req_access_txt = "101"; pixel_x = -3 }, -/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech, /area/outpost/security/armory) "mP" = ( @@ -3670,7 +3669,6 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, -/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech/grid, /area/outpost/security/armory) "nz" = ( @@ -6621,7 +6619,7 @@ /area/outpost/hallway/central) "xk" = ( /obj/structure/bonfire/prelit, -/obj/effect/turf_decal/weather/snow{ +/obj/effect/turf_decal/weather/snow/corner{ dir = 1 }, /turf/open/floor/plating/asteroid/snow/under/lit, @@ -9284,7 +9282,7 @@ pixel_y = 5; pixel_x = 1 }, -/obj/effect/turf_decal/weather/snow{ +/obj/effect/turf_decal/weather/snow/corner{ dir = 10 }, /turf/open/floor/plating/asteroid/snow/under/lit, @@ -10243,7 +10241,6 @@ dir = 4 }, /obj/machinery/airalarm/directional/east, -/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech, /area/outpost/security/armory) "JK" = ( @@ -10715,7 +10712,6 @@ dir = 8 }, /obj/machinery/light/directional/west, -/obj/effect/landmark/ert_outpost_spawn, /turf/open/floor/plasteel/tech, /area/outpost/security/armory) "Lv" = ( @@ -11622,13 +11618,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" = ( @@ -12933,6 +12929,7 @@ /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/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index 67d686bd4faa..16a771d5be54 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -647,7 +647,6 @@ /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" = ( @@ -3505,9 +3504,10 @@ pixel_x = -28 }, /obj/item/clothing/under/rank/command/captain, -/obj/item/clothing/under/rank/command, +/obj/item/clothing/under/rank/command/lieutenant, /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,7 +3521,6 @@ /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 32efe563c0bb..6e37d1b244e8 100644 --- a/_maps/shuttles/independent/independent_bubble.dmm +++ b/_maps/shuttles/independent/independent_bubble.dmm @@ -650,14 +650,13 @@ /turf/open/floor/plasteel/mono, /area/ship/hallway/central) "AR" = ( -/obj/docking_port/stationary{ - width = 30; - height = 15; - dwidth = 15; - dir = 2 +/obj/machinery/door/airlock/external, +/obj/docking_port/mobile{ + launch_status = 0; + port_direction = 4 }, -/turf/template_noop, -/area/space) +/turf/open/floor/plating, +/area/ship/engineering) "AU" = ( /obj/machinery/cryopod{ dir = 4 @@ -956,18 +955,6 @@ }, /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 @@ -1291,7 +1278,6 @@ VB VB VB VB -VB "} (2,1,1) = {" VB @@ -1311,7 +1297,6 @@ VB VB VB VB -VB "} (3,1,1) = {" VB @@ -1331,7 +1316,6 @@ VB VB VB VB -VB "} (4,1,1) = {" VB @@ -1351,7 +1335,6 @@ Ob VB VB VB -VB "} (5,1,1) = {" VB @@ -1371,7 +1354,6 @@ Ob VB VB VB -VB "} (6,1,1) = {" VB @@ -1391,7 +1373,6 @@ nH nH VB VB -VB "} (7,1,1) = {" VB @@ -1411,7 +1392,6 @@ KG nH VB VB -VB "} (8,1,1) = {" VB @@ -1431,7 +1411,6 @@ eT nH VB VB -VB "} (9,1,1) = {" VB @@ -1451,7 +1430,6 @@ fs vR xX VB -VB "} (10,1,1) = {" VB @@ -1471,7 +1449,6 @@ kW nH NX VB -VB "} (11,1,1) = {" Xn @@ -1491,10 +1468,9 @@ IL Vt Rk MJ -VB "} (12,1,1) = {" -Nf +gl Gl ec nS @@ -1510,7 +1486,6 @@ cH Ls ZQ cG -ZQ AR "} (13,1,1) = {" @@ -1531,7 +1506,6 @@ UC Vt mY MJ -VB "} (14,1,1) = {" VB @@ -1551,7 +1525,6 @@ MJ MJ VB VB -VB "} (15,1,1) = {" VB @@ -1571,7 +1544,6 @@ zy VB VB VB -VB "} (16,1,1) = {" VB @@ -1591,7 +1563,6 @@ zy VB VB VB -VB "} (17,1,1) = {" VB @@ -1611,7 +1582,6 @@ VB VB VB VB -VB "} (18,1,1) = {" VB @@ -1631,25 +1601,4 @@ 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 645b3a652960..6f86b626025b 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -1552,9 +1552,8 @@ /obj/effect/turf_decal/corner/opaque/blue/half{ dir = 1 }, -/obj/item/radio/intercom/wideband/directional/east, -/obj/item/clothing/suit/armor/vest/capcarapace/duster, /obj/item/clothing/head/caphat/cowboy, +/obj/item/radio/intercom/wideband/directional/east, /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 29264dd2958f..48c5487f6ebe 100644 --- a/_maps/shuttles/independent/independent_kilo.dmm +++ b/_maps/shuttles/independent/independent_kilo.dmm @@ -646,7 +646,6 @@ /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/syndicate/syndicate_litieguai.dmm b/_maps/shuttles/independent/independent_litieguai.dmm similarity index 63% rename from _maps/shuttles/syndicate/syndicate_litieguai.dmm rename to _maps/shuttles/independent/independent_litieguai.dmm index 055e98bd59c6..9e64a8e4407a 100644 --- a/_maps/shuttles/syndicate/syndicate_litieguai.dmm +++ b/_maps/shuttles/independent/independent_litieguai.dmm @@ -1,1783 +1,1420 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"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 +"aL" = ( +/obj/machinery/power/smes/engineering{ + charge = 1e+006 }, /obj/structure/cable{ - 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 + icon_state = "0-2" }, +/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/medical/surgery) -"ba" = ( -/obj/structure/mirror{ - pixel_x = 25 - }, -/obj/structure/sink{ - dir = 8; - pixel_y = 0; - pixel_x = 12 - }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = -32 +/area/ship/storage) +"bl" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 15; + height = 15; + width = 30 }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) +/turf/template_noop, +/area/template_noop) "bu" = ( -/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/machinery/door/airlock/medical{ + dir = 4; + name = "Storage Room" }, -/turf/open/floor/plasteel/white, -/area/ship/cargo) -"bD" = ( +/obj/effect/turf_decal/trimline/opaque/red/arrow_ccw, /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 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/command{ - dir = 8; - name = "Bridge" +/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" }, -/turf/open/floor/plasteel/tech/grid, +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, /area/ship/bridge) -"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" +"ck" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/sign/poster/retro/smile{ + pixel_y = -32 }, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +/obj/structure/frame/computer{ dir = 1 }, -/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/industrial/hatch/red, /turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"bT" = ( -/obj/machinery/smartfridge/bloodbank/preloaded{ - density = 0; - pixel_y = 0; - pixel_x = 32 +/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 }, -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/stasis{ - dir = 8 +/obj/effect/turf_decal/industrial/loading{ + dir = 4 }, /turf/open/floor/plasteel/tech, /area/ship/medical) -"cd" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" +"cI" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "2-8" +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 +/turf/open/floor/plating, +/area/ship/maintenance/port) +"dH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/effect/turf_decal/industrial/warning{ +/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 }, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"cK" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" + }, +/obj/machinery/door/poddoor{ + id = "traumaenginel" }, -/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) -"cL" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 +"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 }, -/obj/item/paper_bin, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/light/small/directional/east, +/obj/machinery/cryopod{ dir = 8 }, -/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/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/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-4" }, -/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" +/turf/open/floor/carpet/nanoweave/red, +/area/ship/bridge) +"eM" = ( +/obj/machinery/door/window/brigdoor/southright{ + req_access_txt = "5" }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/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, -/obj/machinery/door/airlock/medical{ - name = "Bathroom" +/obj/structure/closet/secure_closet/wall{ + dir = 8; + icon_state = "sec_wall"; + name = "clothing locker"; + pixel_x = 28; + req_access_txt = "5" }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/toilet) +/turf/open/floor/plasteel/dark, +/area/ship/crew) "eS" = ( -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel, /area/ship/cargo) -"eT" = ( -/obj/effect/turf_decal/industrial/outline/red, -/obj/machinery/computer/rdconsole/core{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 11; - pixel_y = -16 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/science) +"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/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-4" }, /obj/structure/cable{ icon_state = "1-2" }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/airlock/medical{ - name = "Surgery" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/medical/surgery) +/turf/open/floor/plating, +/area/ship/maintenance/port) "fp" = ( /turf/closed/wall/mineral/titanium, /area/ship/maintenance/port) -"fW" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ +"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 }, -/obj/machinery/holopad/emergency/medical, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /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 + icon_state = "4-8" }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = 32 +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel, /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) -"hQ" = ( -/obj/structure/table/optable, -/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, +"gO" = ( /obj/structure/cable{ icon_state = "0-4" }, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 22 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "traumashield" }, -/obj/structure/closet/secure_closet{ - name = "mortuary locker" +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/ship/medical/surgery) -"hW" = ( -/obj/structure/dresser{ - dir = 8 +/obj/machinery/door/poddoor/shutters{ + id = "traumalobby"; + name = "Lobby" }, -/turf/open/floor/carpet/cyan, -/area/ship/crew) -"ih" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 +/turf/open/floor/engine, +/area/ship/cargo) +"hq" = ( +/turf/open/floor/plasteel/stairs/right{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "0-8" +/area/ship/storage) +"hv" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 8 }, -/obj/machinery/door/poddoor{ - dir = 8; - id = "traumaenginel" +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage) +"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 = 8 + dir = 1 }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"in" = ( -/obj/structure/bed{ - dir = 8 +/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 }, -/obj/structure/curtain/bounty, -/obj/item/bedsheet/blue{ - dir = 8 +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -13; + pixel_y = -16 }, -/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 +/turf/open/floor/vault, +/area/ship/storage) +"ie" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "lobbydoors"; + name = "Sickbay" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/brushed, -/area/ship/crew) +/obj/effect/turf_decal/corner/opaque/white/mono, +/turf/open/floor/plasteel/white, +/area/ship/cargo) "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/structure/cable{ - icon_state = "1-8" +"iJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 +/obj/machinery/airalarm/directional/south, +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = -32 }, -/obj/structure/cable{ - icon_state = "2-4" +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"iP" = ( +/obj/machinery/power/smes/engineering{ + charge = 1e+006 }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-2" }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) +/turf/open/floor/plating, +/area/ship/maintenance/starboard) "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 = 1; - id = "traumaramp" - }, +"jx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ship/storage/eva) -"jU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/white{ dir = 8 }, -/obj/effect/turf_decal/siding/white{ - dir = 4 +/obj/effect/turf_decal/corner/opaque/white/mono, +/obj/machinery/door/window/westleft{ + name = "Pharmacy" }, -/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 +/turf/open/floor/plasteel/white, +/area/ship/medical) +"kC" = ( +/obj/machinery/door/window/brigdoor/southleft{ + req_access_txt = "5" }, -/obj/structure/cable/yellow{ - icon_state = "0-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" }, +/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, +/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) -"kw" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 4; - color = "#332521" - }, -/turf/open/floor/wood/ebony, -/area/ship/crew) -"la" = ( -/obj/structure/railing{ - dir = 10 +"kO" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "traumashield2" }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 4 }, -/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 + 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" + icon_state = "0-4" }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/door/poddoor{ + dir = 4; + id = "traumaramp" }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"lJ" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ship/storage) +"kP" = ( +/obj/structure/table/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/clothing/mask/surgical{ + pixel_y = 6 + }, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = 10 + }, +/obj/item/clothing/suit/apron/surgical{ + pixel_y = 6 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 5; + pixel_y = -1 + }, +/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/turf_decal/trimline/opaque/red/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + 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 + pixel_x = 19; + pixel_y = 13; + dir = 8 }, /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{ +/area/ship/medical) +"lj" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -12 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 1 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/white, -/area/ship/cargo) -"mo" = ( +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"lF" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 + dir = 1 }, -/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{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, +/obj/effect/turf_decal/corner/opaque/white/mono, +/obj/machinery/door/window/westright{ + name = "Storage" + }, +/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" }, -/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 +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel, /area/ship/cargo) -"nb" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ +"lY" = ( +/obj/machinery/door/airlock/medical{ + dir = 4; + name = "Crew Quarters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/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{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/carpet/cyan, -/area/ship/crew) -"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 + dir = 4 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/medical{ - name = "Treatment Center" +/turf/open/floor/plasteel/grimy, +/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 + }, +/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/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 }, -/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) +"mG" = ( +/obj/machinery/firealarm/directional/north, +/obj/structure/sign/warning/gasmask{ + pixel_x = -32 }, -/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/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/plasteel/white, -/area/ship/cargo) -"ot" = ( -/obj/machinery/door/poddoor/preopen{ - dir = 8; - id = "traumabridge"; - name = "Window Blast Door" +/obj/item/pickaxe/emergency{ + desc = "For extracting yourself from rough landings, and getting to the even rougher ones"; + name = "Medical Retrieval Tool" }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, +/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, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"mO" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/dark, /area/ship/bridge) -"oA" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 +"mP" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/maintenance/port) +"mQ" = ( +/obj/structure/window/reinforced{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/window/reinforced{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/cargo) -"pf" = ( -/obj/docking_port/stationary{ - dwidth = 8; - height = 15; - width = 30 +/obj/structure/closet/secure_closet{ + icon_state = "med"; + name = "medicine locker" }, -/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/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, /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 = "1-8" + icon_state = "2-8" }, +/obj/effect/turf_decal/corner/opaque/white/mono, /turf/open/floor/plasteel/white, -/area/ship/cargo) -"qr" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "traumashield2" +/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 }, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, +/turf/open/floor/plasteel, +/area/ship/cargo) +"oH" = ( /obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 1 }, -/obj/machinery/door/firedoor/border_only{ - 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/poddoor{ - id = "traumaramp" +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/engine, -/area/ship/storage/eva) -"qv" = ( -/obj/structure/table, +/turf/open/floor/plasteel, +/area/ship/cargo) +"oQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft, /obj/machinery/button/door{ dir = 1; - id = "traumastore"; - name = "Storage Shutter Control"; - pixel_x = -7; - pixel_y = -22 - }, -/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 - }, -/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/medical) -"qW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - 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" + id = "lobbydoors"; + name = "Lobby Door Control"; + normaldoorcontrol = 1; + pixel_x = 11; + pixel_y = -4 }, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/carpet/cyan, -/area/ship/bridge) -"rk" = ( -/obj/machinery/rnd/production/techfab/department/medical, +/obj/machinery/door/firedoor/border_only, /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" - }, -/turf/open/floor/plasteel/white, -/area/ship/cargo) -"rA" = ( -/obj/structure/cable, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ +/obj/machinery/button/shieldwallgen{ dir = 1; - id = "traumashield" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 + id = "traumashield"; + name = "Lobby Holoshield"; + pixel_x = -6; + pixel_y = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/machinery/button/door{ + dir = 1; + id = "lobbydoors"; + name = "Lobby Door Bolts Control"; + normaldoorcontrol = 1; + pixel_x = 11; + pixel_y = 7; + specialfunctions = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 8; +/obj/machinery/button/door{ + dir = 1; id = "traumalobby"; - name = "Lobby" + name = "Lobby Shutter Control"; + pixel_x = -6; + pixel_y = -4 }, -/turf/open/floor/engine, +/turf/open/floor/plating, /area/ship/cargo) -"rJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +"oS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/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{ dir = 4 }, -/obj/machinery/power/terminal{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, +/obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable{ icon_state = "0-4" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/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{ - dir = 2; - id = "traumaenginel"; - name = "Engine Shutter Control"; + id = "traumawindows"; + name = "Window Shutters"; + pixel_x = 5; + pixel_y = 7 + }, +/obj/machinery/button/door{ + id = "traumabridge"; + name = "Bridge Window Shutters"; pixel_x = -5; - pixel_y = 22 + pixel_y = 7 }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"rS" = ( -/obj/structure/toilet{ - dir = 8 +/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 }, -/obj/structure/window/reinforced/tinted/frosted, -/obj/machinery/door/window/survival_pod{ - dir = 8 +/obj/structure/mirror{ + pixel_x = 25 }, -/obj/structure/curtain, +/obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel/freezer, /area/ship/crew/toilet) -"rT" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/medical/surgery) -"sd" = ( -/obj/machinery/stasis{ +"qQ" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 8 }, -/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/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" }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"rh" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel, +/area/ship/cargo) +"ru" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/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{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/brushed, +/turf/open/floor/plasteel/white, /area/ship/medical) -"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 +"rM" = ( +/obj/machinery/light/small/directional/south{ + pixel_x = 17 }, +/obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable{ icon_state = "0-8" }, -/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 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -13; + pixel_y = -16 }, -/obj/effect/turf_decal/siding/wood{ - dir = 5; - color = "#332521" +/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" }, -/turf/open/floor/wood/ebony, +/turf/open/floor/plasteel/dark, /area/ship/crew) -"up" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ +"sq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) -"us" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -19; - pixel_x = -8 - }, +/obj/effect/turf_decal/corner/opaque/white/mono, /turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"uE" = ( +/area/ship/medical) +"su" = ( +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel, +/area/ship/crew) +"sz" = ( /obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 4 }, -/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, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/medical{ - name = "Storage Room" - }, -/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/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/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/cable{ + icon_state = "4-8" }, -/obj/structure/catwalk/over, /turf/open/floor/plating, -/area/ship/external) -"vE" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Helm" +/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" }, -/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/structure/cable{ + icon_state = "2-8" }, -/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/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{ +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 8 }, -/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" = ( +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"tq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/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 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel, +/area/ship/cargo) +"tO" = ( +/obj/structure/closet/secure_closet{ + icon_state = "med_secure"; + name = "medical intern's locker" }, -/obj/structure/sign/poster/official/help_others{ - pixel_y = 32 +/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, +/area/ship/crew) +"tT" = ( +/obj/machinery/light/directional/east, +/obj/structure/chair{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +/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 }, +/obj/effect/landmark/start/chemist, /turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"xB" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +/area/ship/medical) +"uk" = ( +/obj/machinery/modular_computer/console/preset/command{ dir = 4 }, -/obj/item/kirbyplants/random, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/cargo) -"xF" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/carpet/nanoweave, /area/ship/bridge) -"xN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +"uo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/siding/wood{ - dir = 6; - color = "#332521" +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 }, -/turf/open/floor/wood/ebony, -/area/ship/crew) -"xW" = ( -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"uq" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/item/stack/sheet/mineral/plasma/twenty, -/obj/item/radio/intercom/directional/south, +/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, -/area/ship/maintenance/starboard) -"yf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ship/crew) -"yn" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "traumashield" +/area/ship/cargo) +"ur" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel, +/area/ship/cargo) +"uE" = ( +/obj/structure/window/reinforced/tinted/frosted{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/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{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 8; - id = "traumalobby"; - name = "Lobby" - }, -/turf/open/floor/engine, -/area/ship/cargo) -"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{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/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 - }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel, /area/ship/cargo) -"zh" = ( -/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/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{ +"uW" = ( +/obj/structure/chair{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/sign/poster/official/soft_cap_pop_art{ + pixel_x = 32 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"zn" = ( +/turf/open/floor/plasteel, +/area/ship/cargo) +"ve" = ( /obj/structure/table/reinforced, -/obj/item/folder/white{ - pixel_x = -5 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/item/stamp/cmo{ - pixel_x = -1; - pixel_y = 12 +/obj/structure/window/reinforced, +/obj/machinery/computer/med_data/laptop{ + dir = 1 }, -/obj/item/pen{ - pixel_x = -5 +/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/paper_bin{ - pixel_x = 9 +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" }, -/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{ +/obj/machinery/light_switch{ dir = 8; - id_tag = "lobbydoors"; - name = "Sickbay" + pixel_x = 19; + pixel_y = 13 }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel, +/area/ship/cargo) +"vn" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ 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" }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"zD" = ( -/obj/effect/turf_decal/arrows/red{ +/obj/machinery/door/firedoor/border_only, +/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/eva) -"zK" = ( -/obj/machinery/power/smes/shuttle/precharged{ +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"vr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/poddoor{ - dir = 8; - id = "traumaenginer" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"vG" = ( +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/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; - id = "traumawindows"; - name = "Window Shutters"; - pixel_x = 5; - pixel_y = 7 +/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/machinery/button/door{ +/obj/item/storage/toolbox/electrical, +/obj/machinery/light_switch{ dir = 8; - id = "traumabridge"; - name = "Bridge Window Shutters"; - pixel_x = -5; - pixel_y = 7 + pixel_x = 19; + pixel_y = 13 }, -/obj/item/stamp/syndicate{ - pixel_x = -7; - pixel_y = -1 +/turf/open/floor/plating, +/area/ship/maintenance/port) +"wD" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "Helm" }, -/turf/open/floor/carpet/cyan, +/obj/effect/landmark/start/captain, +/turf/open/floor/carpet/nanoweave, /area/ship/bridge) -"zM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +"wG" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "Medical" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/landmark/start/chief_medical_officer, +/turf/open/floor/carpet/nanoweave, +/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 = "4-8" + icon_state = "0-2" }, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 1 +/obj/effect/turf_decal/number/zero{ + dir = 4 + }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 13 + }, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"zg" = ( +/obj/machinery/light/directional/north, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 32 }, +/obj/effect/turf_decal/corner/opaque/white/mono, /turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"zS" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/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{ dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/obj/structure/bodycontainer/morgue{ dir = 8 }, +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"zE" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-9" }, -/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 +/obj/structure/cable{ + icon_state = "4-10" }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/turf/open/floor/plasteel/stairs/medium{ dir = 8 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/brushed, /area/ship/storage) -"Aj" = ( -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +"zR" = ( +/obj/structure/table/reinforced, +/obj/item/folder/white{ + pixel_x = -5 }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; - icon_state = "sec_wall"; - name = "armor locker"; - req_access_txt = "5"; - pixel_y = -28 +/obj/item/stamp/cmo{ + pixel_x = -1; + pixel_y = 12 }, -/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/item/pen{ + pixel_x = -5 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/firealarm/directional/east, +/obj/item/paper_bin{ + pixel_x = 9 }, -/turf/open/floor/plasteel/white, -/area/ship/cargo) -"AD" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Port Engines" +/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 }, -/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/hatch/yellow, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"AG" = ( +/obj/structure/railing{ + dir = 6 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech/grid, -/area/ship/cargo) +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage) "AJ" = ( /turf/closed/wall/mineral/titanium, /area/ship/cargo) -"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" - }, +"Bl" = ( +/obj/effect/turf_decal/corner/opaque/red/full, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/storage) -"AX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/cargo) +"BH" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 1; + id = "traumashield2" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-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 = 4 }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"Bp" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 5 +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 8 }, -/obj/machinery/cryopod{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/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{ +/obj/machinery/door/poddoor{ dir = 4; - icon_state = "solgov_wall"; - name = "chief medical officer's closet"; - req_access_txt = "40"; - pixel_x = -28 + id = "traumaramp" }, -/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{ +/turf/open/floor/engine, +/area/ship/storage) +"BK" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Cp" = ( -/obj/machinery/door/airlock/medical{ - name = "Crew Quarters" - }, /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 = 8 + }, +/obj/machinery/airalarm/directional/west, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"BN" = ( +/obj/docking_port/mobile{ + launch_status = 0; + port_direction = 2 }, -/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-2" + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, /obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/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 +/obj/machinery/door/poddoor/shutters{ + id = "traumalobby"; + name = "Lobby" }, +/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 = "4-8" + icon_state = "1-2" }, -/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/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 8 }, -/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/light_switch{ + dir = 4; + pixel_x = -21; + pixel_y = 10 }, -/turf/open/floor/plating, -/area/ship/medical) -"Dr" = ( +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"CX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 + dir = 6 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-8" }, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "2-8" }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/warning, /turf/open/floor/plating, /area/ship/maintenance/port) -"DS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +"Dj" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 1 }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -17; - pixel_x = 11 +/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" }, -/obj/structure/cable{ - icon_state = "0-8" +/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/effect/turf_decal/industrial/warning/corner{ - dir = 8 +/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/effect/turf_decal/industrial/outline/red, +/obj/structure/window/reinforced{ + dir = 1 }, -/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/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/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/computer/operating, +/obj/structure/window/reinforced{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plating, -/area/ship/maintenance/port) +/turf/open/floor/plasteel/tech/grid, +/area/ship/medical) "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{ +"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{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical/surgery) -"Fe" = ( +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"FE" = ( +/obj/machinery/firealarm/directional/east, /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" +/obj/machinery/reagentgrinder{ + pixel_y = 10 }, -/turf/open/floor/plating, -/area/ship/storage) -"FE" = ( -/obj/effect/landmark/start/paramedic, -/turf/open/floor/plasteel/patterned/brushed, -/area/ship/crew) -"FH" = ( -/obj/structure/chair{ - dir = 4 +/obj/structure/table, +/obj/item/lighter{ + pixel_x = -8 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/white, /area/ship/medical) -"FO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/carpet/cyan, -/area/ship/bridge) -"Gj" = ( +"Go" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/door/window{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/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{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/cargo) -"Gs" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 }, -/obj/machinery/newscaster/directional/west, -/obj/effect/turf_decal/siding/wood{ - dir = 2; - color = "#332521" +/turf/open/floor/plasteel/tech, +/area/ship/medical) +"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" }, -/turf/open/floor/wood/ebony, -/area/ship/crew) -"Gw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -1787,434 +1424,383 @@ /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 }, -/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" +/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 }, -/obj/effect/landmark/start/chief_medical_officer, -/turf/open/floor/carpet/cyan, -/area/ship/bridge) -"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/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 }, -/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{ +/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, +/area/ship/bridge) +"HF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, -/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" + dir = 1 }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical/surgery) -"Hb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ +/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{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Port Engines" +/turf/open/floor/plasteel, +/area/ship/cargo) +"Ja" = ( +/obj/structure/chair{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/maintenance/port) -"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) -"HE" = ( -/obj/structure/rack, -/obj/effect/turf_decal/industrial/outline/red, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/metal/fifty, +/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, -/obj/item/multitool, -/turf/open/floor/plasteel/tech, -/area/ship/storage/eva) -"HI" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - dir = 8 +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Jn" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 1 }, -/obj/machinery/button/door{ +/obj/structure/cable, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"JA" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor/preopen{ dir = 4; - id = "lobbydoors"; - name = "Lobby Door Control"; - normaldoorcontrol = 1; - pixel_x = 6; - pixel_y = -4 + id = "traumawindows"; + name = "Window Blast Door" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/turf/open/floor/plating, +/area/ship/medical) +"Kc" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew) +"Kh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/effect/turf_decal/industrial/hatch/red, -/obj/machinery/button/shieldwallgen{ +/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; - id = "traumashield"; - name = "Lobby Holoshield"; - pixel_x = -6; - pixel_y = 8 + pixel_x = -21; + pixel_y = -10 }, -/obj/machinery/button/door{ - dir = 4; - id = "lobbydoors"; - name = "Lobby Door Bolts Control"; - normaldoorcontrol = 1; - pixel_x = 6; - pixel_y = 8; - specialfunctions = 4 +/turf/open/floor/plasteel, +/area/ship/crew) +"Ko" = ( +/obj/machinery/light/directional/east, +/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) +"Kv" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 4 }, -/obj/machinery/button/door{ - dir = 4; - id = "traumalobby"; - name = "Lobby Shutter Control"; - pixel_x = -6; - pixel_y = -4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"KD" = ( +/obj/structure/window/reinforced{ + 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/cargo) -"HR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/area/ship/maintenance/port) +"KR" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 12 }, -/obj/structure/cable{ - icon_state = "2-4" +/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/structure/cable{ - icon_state = "4-8" +/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, +/area/ship/cargo) +"Lh" = ( +/obj/machinery/atmospherics/components/binary/pump/on/layer2, +/obj/structure/closet/firecloset/wall{ + dir = 8; + pixel_x = 28 }, -/obj/machinery/firealarm/directional/north, /turf/open/floor/plating, /area/ship/maintenance/port) -"HU" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/maintenance/starboard) -"IL" = ( -/obj/structure/chair{ +"Ll" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 8 }, -/obj/effect/landmark/start/assistant, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/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 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"Ln" = ( /obj/structure/cable{ - icon_state = "0-8" + icon_state = "6-8" }, -/obj/machinery/door/poddoor{ - dir = 8; - id = "traumaenginel" +/obj/effect/turf_decal/arrows/red{ + dir = 8 }, -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 1 }, -/obj/structure/window/reinforced{ - dir = 8 +/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 }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"JA" = ( -/obj/machinery/power/smes/engineering{ - charge = 1e+006 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) -"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 - }, +"Lu" = ( /obj/structure/cable{ - icon_state = "0-2" + icon_state = "4-8" }, -/obj/machinery/door/poddoor{ - id = "traumaramp" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ dir = 1 }, -/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" - }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/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, +/turf/open/floor/vault, /area/ship/storage) -"Kk" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/industrial/warning{ - dir = 9 +"Ml" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 8; + height = 15; + width = 30 }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"Kp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/turf/template_noop, +/area/template_noop) +"Mx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/machinery/power/terminal{ - dir = 8 +/obj/machinery/firealarm/directional/west{ + pixel_y = 6 }, /obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 + icon_state = "1-2" }, +/obj/effect/turf_decal/industrial/warning, /obj/machinery/button/door{ + dir = 4; id = "traumaenginer"; name = "Engine Shutter Control"; - pixel_x = -5; - pixel_y = -18; - dir = 1 + pixel_x = -22; + pixel_y = -8 }, /turf/open/floor/plating, /area/ship/maintenance/starboard) -"Kv" = ( -/obj/structure/closet/secure_closet{ - icon_state = "med_secure"; - name = "medical intern's locker" - }, -/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 +"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" }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"KS" = ( +/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/machinery/power/port_gen/pacman, /obj/structure/cable/yellow{ - icon_state = "0-8" + icon_state = "0-2" }, /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) -"KU" = ( -/obj/structure/bed{ - dir = 8 - }, -/obj/structure/curtain/bounty, -/obj/item/bedsheet/blue{ - dir = 8 - }, -/turf/open/floor/carpet/cyan, +"MW" = ( +/obj/structure/table, +/obj/item/radio/intercom/directional/south, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/grimy, /area/ship/crew) -"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 - }, +"MY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 + dir = 9 }, /obj/structure/cable{ icon_state = "4-8" }, -/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/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 +/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/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, +/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, /area/ship/bridge) -"Ls" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ +"Ny" = ( +/obj/machinery/power/smes/shuttle/precharged{ dir = 1 }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/computer/med_data/laptop{ - dir = 4 +/obj/structure/window/reinforced, +/obj/machinery/door/window/northleft, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/door/poddoor{ + id = "traumaenginel" }, -/obj/effect/turf_decal/industrial/hatch/red, /turf/open/floor/plating, -/area/ship/cargo) -"LH" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ +/area/ship/maintenance/port) +"Ob" = ( +/obj/machinery/power/smes/shuttle/precharged{ 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 }, @@ -2224,540 +1810,618 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ +/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{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = 32 +/obj/structure/cable{ + icon_state = "2-8" }, -/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 = "0-2" + icon_state = "1-8" }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/light_switch{ +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"Ps" = ( +/obj/structure/closet/emcloset/wall{ dir = 4; - pixel_x = -20; - pixel_y = -11 + pixel_x = -28 }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"Mb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/effect/turf_decal/number/two{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"PG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/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, +/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" + }, /turf/open/floor/plating, -/area/ship/maintenance/starboard) -"MW" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/obj/structure/curtain/cloth, +/area/ship/crew) +"PL" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/structure/catwalk/over, /turf/open/floor/plating, -/area/ship/medical) -"Nn" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"Nz" = ( -/obj/machinery/shower{ - dir = 8; - pixel_y = 15 +/area/ship/external) +"Qe" = ( +/obj/structure/toilet, +/obj/structure/window/reinforced/tinted/frosted{ + dir = 4 }, +/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) -"Of" = ( -/obj/structure/cable{ - icon_state = "2-5" - }, -/obj/structure/cable{ - icon_state = "2-9" - }, -/turf/open/floor/plasteel/stairs/medium{ - dir = 1 +"Qp" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/trimline/opaque/red/filled/line, +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = -32 }, -/area/ship/storage/eva) -"OF" = ( -/obj/effect/landmark/start/paramedic, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 22 +/obj/effect/turf_decal/siding/white/end{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ship/crew) -"OK" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, +/turf/open/floor/vault, /area/ship/storage) -"OM" = ( +"QP" = ( +/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/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-8" +/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-4" +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 1 +/obj/machinery/door/poddoor{ + dir = 8; + id = "traumaramp" }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/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" }, -/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 +/turf/open/floor/plasteel, +/area/ship/crew) +"QY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/item/storage/backpack/duffelbag/med/surgery{ - pixel_y = 10 +/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/clothing/suit/apron/surgical{ - pixel_y = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = 5; - pixel_y = -1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/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/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"Pp" = ( -/obj/machinery/door/window/brigdoor/southleft{ - dir = 8; - req_access_txt = "5" +/turf/open/floor/plasteel, +/area/ship/cargo) +"Rs" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 8 }, -/obj/item/storage/belt/medical/surgery, -/obj/item/storage/belt/medical/paramedic, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/structure/closet/secure_closet/wall{ - icon_state = "sec_wall"; - name = "equipment locker"; - req_access_txt = "5"; - pixel_y = 28 - }, -/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" }, -/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{ +/turf/open/floor/plasteel/white, +/area/ship/medical) +"RB" = ( +/obj/structure/window/reinforced{ 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 + }, +/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 = "0-4" + icon_state = "1-4" }, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"PH" = ( -/obj/machinery/door/poddoor/preopen{ - id = "traumawindows"; - name = "Window Blast Door" +/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{ + dir = 4 }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, +/turf/open/floor/plasteel/grimy, /area/ship/crew) -"Qq" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/medical) -"Qw" = ( +"Sx" = ( /obj/structure/cable{ - icon_state = "1-6" + icon_state = "5-8" }, /obj/machinery/button/door{ - dir = 4; + dir = 1; id = "traumaramp"; name = "Emergency Ramp"; - pixel_x = -26; - pixel_y = -4 + pixel_x = -4; + pixel_y = -26 }, /obj/machinery/button/shieldwallgen{ - dir = 4; + dir = 1; id = "traumashield2"; name = "Emergency Ramp Shield"; - pixel_x = -23; - pixel_y = 6 + pixel_x = 6; + pixel_y = -23 }, /obj/effect/turf_decal/arrows/red{ - dir = 1 + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/black, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"QF" = ( -/obj/structure/chair/office/light{ +/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{ 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 = 6 + dir = 5 }, -/turf/open/floor/carpet/cyan, -/area/ship/hallway/central) -"QG" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 +/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 }, /obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor{ - dir = 8; - id = "traumaenginer" + icon_state = "1-8" }, -/obj/structure/window/reinforced{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, +/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) -"Ra" = ( -/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/hallway/central) -"Rb" = ( +"TI" = ( +/obj/machinery/vending/wardrobe/medi_wardrobe, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"TO" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-8" }, -/obj/effect/turf_decal/siding/white{ +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "traumashield" + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/turf_decal/siding/white/corner{ - dir = 8 +/obj/machinery/door/poddoor/shutters{ + id = "traumalobby"; + name = "Lobby" }, -/obj/effect/turf_decal/siding/white/corner, -/obj/structure/cable{ - icon_state = "2-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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 + 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 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/storage/eva) -"Rl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/fore) +"UC" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/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" + }, +/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-4" + icon_state = "1-8" }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ship/storage) -"RA" = ( -/obj/structure/chair{ - dir = 1 +/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/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/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)" }, -/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 +/obj/item/ammo_box/magazine/co9mm{ + ammo_type = /obj/item/ammo_casing/c9mm/rubber; + name = "Commander magazine (Rubbershot 9mm)" }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"Td" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 +/obj/item/ammo_box/magazine/co9mm{ + ammo_type = /obj/item/ammo_casing/c9mm/ap; + name = "Commander magazine (AP 9mm)" + }, +/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" }, +/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/item/ammo_box/magazine/co9mm{ + ammo_type = /obj/item/ammo_casing/c9mm/ap; + name = "Commander magazine (AP 9mm)" + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew) +"Vq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/airlock/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) -"Tg" = ( -/obj/machinery/power/shuttle/engine/electric{ +"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{ dir = 4 }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "0-2" + }, +/obj/machinery/door/poddoor{ + id = "traumaenginer" }, /turf/open/floor/plating, -/area/ship/maintenance/port) -"Ti" = ( -/turf/closed/wall/mineral/titanium, /area/ship/maintenance/starboard) -"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 +"VY" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"Wc" = ( +/obj/machinery/door/airlock/command{ + name = "Bridge" }, -/obj/structure/cable{ - icon_state = "4-8" +/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 }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"TA" = ( -/obj/machinery/computer/cargo/express{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"TB" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +"Wd" = ( +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/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, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/white, -/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, +/area/ship/medical) +"Xb" = ( /obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = -11 + icon_state = "1-4" }, -/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 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"Uh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 + dir = 4 }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-4" }, -/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/effect/turf_decal/industrial/warning, /turf/open/floor/plating, /area/ship/maintenance/starboard) -"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{ +"Xh" = ( +/obj/machinery/door/airlock/medical{ dir = 4; - pixel_x = -20; - pixel_y = -11 + name = "Restroom" }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/storage/eva) -"UD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/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 + dir = 4 }, -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"UK" = ( /obj/structure/cable{ - icon_state = "1-10" + icon_state = "4-8" }, -/obj/effect/turf_decal/arrows/red{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/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{ +/turf/open/floor/plasteel/showroomfloor, +/area/ship/crew/toilet) +"Xj" = ( +/obj/machinery/door/airlock/maintenance_hatch{ dir = 4; - pixel_x = -20; - pixel_y = -11 + name = "Starboard Engines" }, -/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 }, @@ -2767,233 +2431,152 @@ /obj/structure/cable{ icon_state = "4-8" }, -/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{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/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/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/structure/curtain/bounty, -/obj/item/bedsheet/syndie{ - dir = 8 +/turf/open/floor/plasteel, +/area/ship/cargo) +"Xs" = ( +/obj/machinery/light/small/directional/south{ + pixel_x = 17 }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/dark, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/nanoweave, /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{ +"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{ dir = 1 }, -/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" - }, -/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 +/obj/machinery/firealarm/directional/east{ + pixel_y = 6 }, -/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 = "1-2" }, -/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/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 +/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/plating, /area/ship/maintenance/port) -"Xx" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 15; - height = 15; - width = 30 +"Yb" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/template_noop, -/area/template_noop) -"XL" = ( -/obj/machinery/power/terminal{ +/obj/effect/turf_decal/siding/white{ 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/effect/turf_decal/siding/white/corner, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 + dir = 6 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/carpet/cyan, -/area/ship/bridge) +/turf/open/floor/vault, +/area/ship/storage) +"Yk" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/grimy, +/area/ship/crew) "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) -"Yw" = ( +"Yv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ 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/window{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 1 }, -/turf/open/floor/plating, -/area/ship/maintenance/starboard) -"YV" = ( +/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" = ( /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/structure/cable{ - icon_state = "1-8" +/obj/effect/turf_decal/trimline/opaque/red/filled/line{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plasteel/white, -/area/ship/hallway/central) -"ZJ" = ( +/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, /obj/effect/turf_decal/trimline/opaque/red/filled/line, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel, +/area/ship/cargo) (1,1,1) = {" UG @@ -3005,664 +2588,544 @@ UG UG UG UG -UG -Xx -UG -UG -UG -UG -UG +Ml 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 "} -(9,1,1) = {" -ZC -KS -Xu -ZC -UG -UG +(2,1,1) = {" UG -Ra -pK -QF -UD -CL -tO -Ra UG UG UG -UO -wt -xW -UO -"} -(10,1,1) = {" -fp -ZC -Pz -ZC UG UG +Uc +OK +kO +QQ +BH +Uc UG -an -TZ -mo -Gj -mu -Tq -an UG UG UG -UO -tb -UO -Ti -"} -(11,1,1) = {" UG fp ZC -fp -UG -rT -YA -YA -YA -YA -OM -nW -qA -qA -qA -wb +MP +Je +aL +fe +Kh +Ny +Jn UG -Ti -UO -Ti UG "} -(12,1,1) = {" -UG -UG -UG -UG -UG -YA -hS -uT -sO -YA -xp -gW -ke -rk -eT -qA -UG -UG -UG +(3,1,1) = {" UG UG -"} -(13,1,1) = {" UG UG UG UG +OK +mG +Ln +hv +Sx +OK 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 "} -(14,1,1) = {" -UG -UG -UG -UG -UG -YA -as -hQ -Pg -YA -zM -gW -ke -wp -mx -qA -UG -UG -UG -UG +(4,1,1) = {" UG -"} -(15,1,1) = {" UG UG UG UG -Qq -YM -Dp -Dp -Dp -YM -Pm -SR +Uc OK -Fr -Fr +MK +AG +zE +hq OK Uc UG UG UG UG +fp +ZC +ZC +ZC +ZC +mw +ZC +ZC +ZC +fp +UG "} -(16,1,1) = {" -UG -UG +(5,1,1) = {" UG UG -YM -TL -FH -FH -tT -MW -UV -gW -Zv -Sy -DX -qv +nu +Nn +Nn +zo +zo +zo +SR +Yb +hT OK +YM +JA +Qq UG UG UG UG -"} -(17,1,1) = {" -UG -UG -UG UG -qV -zS -up -fW -tF -nI -Lh -zy -AQ -WX -Rl -Ai -OK +ZC +ZC +vr +ZC UG UG UG UG "} -(18,1,1) = {" +(6,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 -YM -sd -zh -vn -bT -MW -UV -gW -Zv -Ki -tJ -gf -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 "} -(19,1,1) = {" +(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 UG +"} +(10,1,1) = {" +bX +hF +pK +eJ +Wc +Ll +Pr +BK +Ll +sM +Cr +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 UG -tn -OZ -OZ -OZ -OZ -OZ -OZ -OZ -LH -zl -Ev +"} +(12,1,1) = {" +bX +mO +wG +rM +Nn Ev Ev Ev Ev -iA -UG -UG -UG -"} -(20,1,1) = {" -UG -UG -qr -Qw -sx -Uz -Hk -HE -TH -OZ -bQ -ZJ +lY Ev -Kv -iC -jh -Gs Ev -iA -UG +vG +jx +mQ +lF +uE +YM +zg +Pp +ie +vj +uN +tT +uW +ZO +KW UG "} -(21,1,1) = {" -UG -pf -jK -zD -Of -Rb -jU -Ln -YV -uU -iQ -zy -Cp -uc -IL -kw -xN -Bp +(13,1,1) = {" +Nn +Nn +zR +Nq +Nn +UX +kC +Ki +QU +UR +tO Ev -UG +wQ +tW +DH +oS +ck +YM +YM +JA +gL +gL +Xj +gL +gL +gL +AJ UG "} -(22,1,1) = {" -UG +(14,1,1) = {" UG -JC -UK -la -UX -BU -KZ -Fe -OZ -TB -us +nu +Nn +SI +Nn +se +eM +su +qc +TR +MW Ev -OF -yf -iW -nF -iW -PH +FE +KR +YM +JA +YM +Qq 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 "} -(24,1,1) = {" +(15,1,1) = {" UG UG -tn -OZ -OZ -zo -wr -WB -LJ -eo -li -Ug +nu +Nn +Nn Ev -Pp -CF Ev -Hl -CZ -iA -UG +TI +iW +Sc +fa +Ev +YM +YM +Qq UG -"} -(25,1,1) = {" UG UG UG UG -tn -zo -Nz -rS -ba -zo -Tr -gW -Ev -vj -Aj -Ev -iA +Ti +UO +OB +UO UG UG UG UG "} -(26,1,1) = {" +(16,1,1) = {" UG UG UG UG UG -Nn -Nn -Nn -Nn -Nn -bD -Yn -Nn -Nn -Nn -Nn +iA +Hl +XW +np +tq +Yk +Ev +Qq UG UG UG UG +Ti +UO +UO +UO +UO +GP +UO +UO +UO +Ti UG "} -(27,1,1) = {" +(17,1,1) = {" UG UG UG UG UG -Nn -WJ -Xd -Ah -ES -Ym -Uh -UN -BD -EL -Nn +UG +PH +XW +iW +el +Ev +iA UG UG UG UG UG -"} -(28,1,1) = {" +UO +Gs +Ps +yi +nl +Xb +Mx +Hq +VM +Dj UG +"} +(18,1,1) = {" UG UG UG UG -nu -Nn -Lr -vE -FO -zL -qW -GH -zn -Nn -nu UG UG +iA +Kc +Zb +Ev +iA UG UG UG -"} -(29,1,1) = {" UG UG UG +Ti +UO +MN +kH +iP +Tx +QY +Ob +Dj UG UG +"} +(19,1,1) = {" UG -nu -Nn -xF -TA -hF -Ca -yQ -Nn -nu UG UG UG UG UG UG -"} -(30,1,1) = {" UG UG UG @@ -3670,17 +3133,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/independent/independent_pillbottle.dmm b/_maps/shuttles/independent/independent_pillbottle.dmm index 92529ea329c6..7408067decf5 100644 --- a/_maps/shuttles/independent/independent_pillbottle.dmm +++ b/_maps/shuttles/independent/independent_pillbottle.dmm @@ -1721,6 +1721,9 @@ }, /turf/open/floor/plating, /area/ship/hallway/fore) +"CP" = ( +/turf/template_noop, +/area/space) "CQ" = ( /turf/closed/wall, /area/ship/bridge) @@ -3916,5 +3919,5 @@ hT hT WS tG -Oz +CP "} diff --git a/_maps/shuttles/independent/independent_rube_goldberg.dmm b/_maps/shuttles/independent/independent_rube_goldberg.dmm index 18577bbbe08b..50febf2f2550 100644 --- a/_maps/shuttles/independent/independent_rube_goldberg.dmm +++ b/_maps/shuttles/independent/independent_rube_goldberg.dmm @@ -83,7 +83,6 @@ "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" = ( @@ -902,19 +901,6 @@ }, /turf/open/floor/plating, /area/ship/engineering/engine) -"hX" = ( -/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) "hZ" = ( /obj/machinery/door/airlock/hatch{ dir = 4 @@ -4464,14 +4450,7 @@ /turf/open/floor/plating/airless, /area/ship/hallway) "Sw" = ( -/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, +/obj/machinery/atmospherics/components/unary/thermomachine, /turf/open/floor/plating, /area/ship/engineering/engine) "Sx" = ( @@ -7084,9 +7063,9 @@ Zy mV bB SY -hX -hX -hX +SY +SY +SY bb zy wg diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index 27fd11a9368d..e612c7fe57e9 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -4729,6 +4729,7 @@ /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/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/independent/nanotrasen_heron.dmm similarity index 99% rename from _maps/shuttles/nanotrasen/nanotrasen_heron.dmm rename to _maps/shuttles/independent/nanotrasen_heron.dmm index 740397c662ad..0898de1238af 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/independent/nanotrasen_heron.dmm @@ -773,7 +773,7 @@ dir = 5 }, /obj/machinery/computer/atmos_control/tank/air_tank{ - sensors = list("hairon"="Heron Air Mix Tank") + sensors = list("hairon"="Heron Air Mix Tank") }, /obj/machinery/light_switch{ pixel_y = 23 @@ -6003,9 +6003,6 @@ 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" = ( @@ -6620,6 +6617,8 @@ 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, @@ -6641,8 +6640,6 @@ /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" = ( @@ -9270,10 +9267,6 @@ /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, @@ -9714,7 +9707,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" @@ -10762,9 +10755,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "2-4" - }, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "NE" = ( @@ -13682,6 +13672,9 @@ /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 }, @@ -15969,7 +15962,7 @@ oz Oa QG QG -HR +QG QG QG Ge diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index bf86ed599f7f..9aec48334728 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -3631,6 +3631,8 @@ /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 877e24727dfd..b2b8bf8786f2 100644 --- a/_maps/shuttles/minutemen/minutemen_asclepius.dmm +++ b/_maps/shuttles/minutemen/minutemen_asclepius.dmm @@ -4935,6 +4935,10 @@ /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 c91299ae62ba..67e7dd8f1afc 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm @@ -1105,8 +1105,6 @@ /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 1f0322ae6a5c..529647a0cbb9 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) @@ -3399,8 +3399,6 @@ /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/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 9223b7746f9a..5e8f8530b1cd 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -7697,6 +7697,9 @@ 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 238992831180..970e3b2031f0 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -1035,6 +1035,7 @@ /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, @@ -1043,9 +1044,6 @@ 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_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index e763b1fd0765..27eec1aa822e 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -1508,7 +1508,10 @@ /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, @@ -1518,8 +1521,6 @@ 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" = ( @@ -1832,7 +1833,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" @@ -5526,16 +5527,15 @@ /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 c458f2aed38b..6ac9e480222e 100644 --- a/_maps/shuttles/roumain/srm_glaive.dmm +++ b/_maps/shuttles/roumain/srm_glaive.dmm @@ -208,7 +208,9 @@ /obj/structure/flora/ausbushes/brflowers, /obj/structure/flora/ausbushes/sparsegrass, /obj/item/book/manual/trickwines_4_brewers, -/turf/open/floor/grass/ship/jungle, +/turf/open/floor/grass{ + icon_state = "junglegrass" + }, /area/ship/roumain) "cJ" = ( /obj/structure/cable/orange{ @@ -253,7 +255,6 @@ "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" = ( @@ -593,12 +594,6 @@ }, /turf/open/floor/wood/ebony, /area/ship/crew/dorm) -"iy" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/fermenting_barrel/distiller, -/turf/open/floor/grass/ship/jungle, -/area/ship/roumain) "iB" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -731,7 +726,15 @@ /area/ship/engineering/engine) "jG" = ( /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/tree/srm, +/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" + }, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "ko" = ( @@ -1677,7 +1680,7 @@ /area/ship/medical) "At" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, +/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageash, /turf/open/floor/plating{ icon_state = "greenerdirt" }, @@ -1773,7 +1776,7 @@ /obj/structure/railing{ dir = 1 }, -/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, +/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageash, /turf/open/floor/ship/dirt/dark, /area/ship/roumain) "BB" = ( @@ -2103,7 +2106,6 @@ name = "Body Holofield Switch"; id = "glaive_body_holo" }, -/obj/structure/fermenting_barrel, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "FA" = ( @@ -2886,6 +2888,10 @@ }, /turf/open/floor/plating, /area/ship/engineering) +"Sl" = ( +/obj/structure/fermenting_barrel, +/turf/open/floor/ship/dirt/dark, +/area/ship/roumain) "Sx" = ( /obj/structure/window/reinforced/spawner{ dir = 4 @@ -3154,12 +3160,6 @@ /obj/structure/flora/junglebush/b, /turf/open/floor/ship/dirt/dark, /area/ship/roumain) -"XI" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/fermenting_barrel, -/turf/open/floor/grass/ship/jungle, -/area/ship/roumain) "XK" = ( /obj/structure/cable/green, /obj/structure/cable/orange{ @@ -3951,8 +3951,8 @@ Lk cz YP ds -XI -iy +aM +aM Fu wp wp @@ -4177,7 +4177,7 @@ ZE MZ qN NL -NL +Sl NL NL NL diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm deleted file mode 100644 index 3c8e75a7ace0..000000000000 --- a/_maps/shuttles/solgov/solgov_inkwell.dmm +++ /dev/null @@ -1,8990 +0,0 @@ -//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 3424b7605354..1d48dbc85f03 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 = "3x4" +Size = "1x3" Purpose = "A horrid merger of engineering platform and pill" File Path = "_maps\shuttles\subshuttles\independant_pill.dmm" @@ -37,5 +37,3 @@ 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 3b05c2224080..cf1571f9d7d4 100644 --- a/_maps/shuttles/subshuttles/frontiersmen_gut.dmm +++ b/_maps/shuttles/subshuttles/frontiersmen_gut.dmm @@ -247,7 +247,6 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/tech, /area/ship/storage) "qh" = ( @@ -342,7 +341,6 @@ }, /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" = ( @@ -571,7 +569,6 @@ color = "#808080" }, /obj/machinery/light/directional/east, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/tech, /area/ship/storage) "RY" = ( @@ -628,7 +625,6 @@ dir = 8; color = "#808080" }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/tech, /area/ship/storage) "UA" = ( @@ -690,7 +686,6 @@ 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 9e0373f103e1..cdc0efe873f5 100644 --- a/_maps/shuttles/subshuttles/independent_kunai.dmm +++ b/_maps/shuttles/subshuttles/independent_kunai.dmm @@ -99,7 +99,6 @@ /obj/structure/chair/comfy/shuttle{ dir = 1 }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/engine/hull/interior, /area/ship/storage) "al" = ( @@ -166,7 +165,6 @@ /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" = ( @@ -393,20 +391,8 @@ dir = 1 }, /obj/machinery/light/small/directional/south, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/engine/hull/interior, /area/ship/storage) -"CE" = ( -/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) "DP" = ( /obj/structure/window/plasma/reinforced/plastitanium, /obj/structure/grille, @@ -507,7 +493,6 @@ "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" = ( @@ -587,7 +572,7 @@ gs Pq hJ bG -CE +RO bG hJ Pq diff --git a/_maps/shuttles/subshuttles/independent_sugarcube.dmm b/_maps/shuttles/subshuttles/independent_sugarcube.dmm index f0eab3027472..865e0da78091 100644 --- a/_maps/shuttles/subshuttles/independent_sugarcube.dmm +++ b/_maps/shuttles/subshuttles/independent_sugarcube.dmm @@ -79,7 +79,6 @@ pixel_y = 23; pixel_x = -13 }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "j" = ( @@ -87,7 +86,6 @@ dir = 4 }, /obj/structure/window/reinforced/spawner/west, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "k" = ( @@ -97,7 +95,6 @@ /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" = ( @@ -110,7 +107,6 @@ /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "n" = ( @@ -151,7 +147,6 @@ }, /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" = ( @@ -228,7 +223,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "A" = ( @@ -280,7 +274,6 @@ }, /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" = ( @@ -290,7 +283,6 @@ /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" = ( @@ -302,7 +294,6 @@ /obj/structure/chair/comfy/shuttle{ dir = 8 }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plating, /area/ship/storage) "J" = ( @@ -317,10 +308,6 @@ "L" = ( /turf/closed/wall, /area/ship/engineering) -"N" = ( -/obj/effect/landmark/ert_shuttle_brief_spawn, -/turf/open/floor/plating, -/area/ship/storage) "Z" = ( /turf/closed/wall/rust, /area/ship/engineering) @@ -393,7 +380,7 @@ b d l l -N +y l J "} diff --git a/_maps/shuttles/subshuttles/independent_superpill.dmm b/_maps/shuttles/subshuttles/independent_superpill.dmm index de9046d091a4..fc0dacddc501 100644 --- a/_maps/shuttles/subshuttles/independent_superpill.dmm +++ b/_maps/shuttles/subshuttles/independent_superpill.dmm @@ -1,219 +1,208 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 +/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/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/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/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/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ +/obj/machinery/atmospherics/components/binary/pump/on/layer1{ dir = 4 }, +/obj/structure/catwalk, /turf/open/floor/plating/rust, /area/ship/storage) "f" = ( -/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/machinery/power/emitter/welded{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/machinery/conveyor{ +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2{ dir = 4; - id = "superpill_start" - }, -/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 + layer = 3 }, -/turf/open/floor/plating{ - initial_gas_mix = "n2o=28, n2=72;TEMP=7" +/obj/machinery/atmospherics/pipe/simple/general/visible/layer1{ + dir = 10 }, +/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/structure/window/plasma/reinforced/spawner/north, -/obj/structure/window/plasma/reinforced/spawner/east, -/obj/structure/window/plasma/reinforced, +/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/machinery/power/supermatter_crystal/shard, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ - dir = 10 +/obj/structure/window/plasma/reinforced/spawner{ + pixel_y = -7 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 +/obj/structure/window/plasma/reinforced/spawner/east{ + pixel_x = 7 }, -/obj/effect/decal/remains/human{ - name = "environmental storytelling" +/obj/structure/window/plasma/reinforced/spawner/north{ + pixel_y = 7 }, -/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/west{ + pixel_x = -7 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/layer4, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w{ + layer = 3 }, /turf/open/floor/plating{ initial_gas_mix = "n2o=28, n2=72;TEMP=7" }, /area/ship/storage) "l" = ( -/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, /obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/general/visible/layer4{ dir = 6 }, -/obj/structure/sign/warning/incident, +/obj/structure/catwalk, /turf/open/floor/plating/rust, /area/ship/storage) "m" = ( -/obj/machinery/computer/helm/retro{ - dir = 8 +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w{ + layer = 3 }, -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ - dir = 9 +/obj/machinery/atmospherics/components/unary/passive_vent/layer4{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 +/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 }, /turf/open/floor/plating/rust, /area/ship/storage) "s" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 +/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/machinery/atmospherics/pipe/simple/general/visible/layer4{ +/obj/machinery/atmospherics/pipe/simple/general/visible/layer1{ dir = 9 }, +/obj/structure/catwalk, /turf/open/floor/plating/rust, /area/ship/storage) "x" = ( -/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 +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ + dir = 8 }, +/obj/structure/catwalk, /turf/open/floor/plating/rust, /area/ship/storage) "C" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-8" }, /obj/machinery/power/apc/auto_name/directional/west{ pixel_x = -25 }, -/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, /obj/structure/window/reinforced/tinted{ dir = 8 }, /obj/structure/window/reinforced/tinted{ - dir = 4 - }, -/obj/structure/fans/tiny, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" + dir = 1 }, /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/structure/catwalk, +/obj/machinery/power/rad_collector/anchored, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ +/obj/machinery/atmospherics/pipe/manifold/general/visible/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible/layer4{ - dir = 9 - }, +/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, /turf/open/floor/plating/rust, /area/ship/storage) "W" = ( -/obj/structure/catwalk, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/clothing/mask/gas, +/obj/structure/bed, +/obj/machinery/light/floor, +/obj/structure/fans/tiny, +/obj/machinery/door/window{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ - dir = 8 +/obj/structure/window/reinforced/tinted{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ - dir = 8 +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/item/reagent_containers/food/drinks/bottle/vodka, -/obj/machinery/atmospherics/pipe/manifold/general/visible/layer4{ - dir = 1 +/obj/machinery/airalarm/directional/west, +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plating/rust, +/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 + }, +/turf/open/floor/plasteel/tech/grid, /area/ship/storage) (1,1,1) = {" diff --git a/_maps/shuttles/subshuttles/nanotrasen_falcon.dmm b/_maps/shuttles/subshuttles/nanotrasen_falcon.dmm index e88bfc4bd5f2..566469a7e219 100644 --- a/_maps/shuttles/subshuttles/nanotrasen_falcon.dmm +++ b/_maps/shuttles/subshuttles/nanotrasen_falcon.dmm @@ -36,7 +36,6 @@ dir = 8 }, /obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "e" = ( @@ -126,7 +125,6 @@ dir = 4; pixel_y = 8 }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel/telecomms_floor, /area/ship/storage/eva) "m" = ( @@ -148,7 +146,6 @@ /obj/machinery/vending/wallmed{ pixel_y = -28 }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "p" = ( @@ -177,7 +174,6 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "s" = ( @@ -311,7 +307,6 @@ /obj/effect/turf_decal/techfloor{ dir = 8 }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "C" = ( @@ -384,7 +379,6 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "J" = ( @@ -400,7 +394,6 @@ dir = 4 }, /obj/item/radio/intercom/directional/north, -/obj/effect/landmark/ert_shuttle_spawn, /turf/open/floor/plasteel, /area/ship/storage/eva) "L" = ( @@ -447,7 +440,6 @@ /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" = ( @@ -543,7 +535,6 @@ 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 dd29db498f95..94ce81e53d3d 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/officer, +/obj/item/clothing/under/syndicate/aclf, /obj/item/clothing/under/syndicate/combat, /obj/item/clothing/glasses/hud/security/sunglasses, /obj/item/clothing/neck/stripedredscarf, diff --git a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm index 7ab9d9405bf8..d6b4fcd4a79a 100644 --- a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm +++ b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm @@ -12,7 +12,9 @@ /obj/effect/turf_decal/spline/fancy/opaque/syndiered{ dir = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/syndiered, +/obj/effect/turf_decal/spline/fancy/opaque/syndiered{ + dir = 2 + }, /turf/open/floor/plasteel/white, /area/ship/bridge) "ah" = ( @@ -306,12 +308,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/engineering) -"hL" = ( -/obj/machinery/porta_turret/ship/syndicate/weak{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "hT" = ( /obj/structure/curtain/cloth, /obj/machinery/shower{ @@ -498,6 +494,7 @@ /obj/effect/turf_decal/corner/opaque/syndiered/bordercorner{ dir = 4 }, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel/dark, /area/ship/crew) "lP" = ( @@ -895,12 +892,6 @@ /obj/effect/landmark/observer_start, /turf/open/floor/plasteel/white, /area/ship/hallway/central) -"tV" = ( -/obj/machinery/porta_turret/ship/syndicate/weak{ - dir = 6 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "uq" = ( /obj/effect/turf_decal/spline/fancy/opaque/syndiered{ dir = 10 @@ -973,12 +964,6 @@ }, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"vW" = ( -/obj/machinery/porta_turret/ship/syndicate/weak{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "xf" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/turf_decal/industrial/warning/corner, @@ -1191,9 +1176,7 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/crew/dorm) "CR" = ( -/obj/machinery/porta_turret/ship/syndicate/weak{ - dir = 10 - }, +/obj/machinery/porta_turret/ship, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "CU" = ( @@ -1310,11 +1293,7 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/bridge) "GV" = ( -/obj/machinery/porta_turret/ship/syndicate/weak{ - dir = 4; - pixel_x = 8; - pixel_y = 4 - }, +/obj/machinery/porta_turret/ship/weak, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "Hd" = ( @@ -1341,13 +1320,6 @@ /obj/item/circuitboard/machine/vendor, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) -"HO" = ( -/obj/machinery/porta_turret/ship/syndicate/weak{ - dir = 4; - pixel_x = 8 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "Ig" = ( /obj/structure/cable{ icon_state = "0-2" @@ -1994,7 +1966,7 @@ /area/ship/engineering) (1,1,1) = {" -hL +CR YQ YQ ru @@ -2097,7 +2069,7 @@ nO "} (7,1,1) = {" YQ -vW +CR kM kM kM @@ -2109,7 +2081,7 @@ cZ jj jj jj -tV +CR YQ "} (8,1,1) = {" @@ -2304,7 +2276,7 @@ YQ YQ YQ YQ -HO +GV bO bO dA diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index fd0b4f7b4575..5d1d70d59fec 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -481,12 +481,6 @@ }, /turf/open/floor/plating, /area/ship/storage) -"jv" = ( -/obj/machinery/porta_turret/ship/syndicate{ - dir = 1 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) "jB" = ( /obj/structure/closet/secure_closet{ anchored = 1; @@ -621,12 +615,6 @@ /obj/effect/landmark/start/captain, /turf/open/floor/carpet/black, /area/ship/bridge) -"mi" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "mL" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/maintenance/fore) @@ -1711,12 +1699,12 @@ 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" = ( @@ -2080,12 +2068,6 @@ /obj/effect/decal/cleanable/food/egg_smudge, /turf/open/floor/plasteel, /area/ship/crew) -"IR" = ( -/obj/machinery/porta_turret/ship/syndicate{ - dir = 1 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "Jf" = ( /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ @@ -2268,9 +2250,8 @@ 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" = ( @@ -2519,9 +2500,7 @@ /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "Qz" = ( -/obj/machinery/porta_turret/ship/syndicate{ - dir = 6 - }, +/obj/machinery/porta_turret/ship/ballistic, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "QW" = ( @@ -3012,10 +2991,6 @@ }, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) -"Wu" = ( -/obj/machinery/porta_turret/ship/syndicate, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) "WN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 @@ -3076,7 +3051,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","playerSyndicate"); + faction = list("neutral"); mob_size = 2; move_force = 1000; move_resist = 1000; @@ -3336,7 +3311,7 @@ sE "} (2,1,1) = {" nn -jv +BG ir PL SP @@ -3353,7 +3328,7 @@ sE nX dU pi -Wu +BG "} (3,1,1) = {" nn @@ -3603,13 +3578,13 @@ UX GV GV GV -Wu +BG nn Zb "} (15,1,1) = {" nn -IR +Qz cs cs XU @@ -3861,13 +3836,13 @@ mL "} (27,1,1) = {" nn -mi +Qz Ap Jv oQ VC Ap -mi +Qz nn nn nn diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 8dadb3355df3..2ec2677dde07 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -204,12 +204,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/mineral/plastitanium/red, /area/ship/security/armory) -"bF" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ - dir = 6 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "bI" = ( /obj/effect/spawner/lootdrop/salvage_manipulator, /obj/effect/decal/cleanable/dirt/dust, @@ -1864,7 +1858,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) "rS" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ +/obj/machinery/porta_turret/ship/ballistic{ dir = 5 }, /turf/closed/wall/mineral/plastitanium, @@ -1970,14 +1964,8 @@ }, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"ta" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ - dir = 10 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "td" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ +/obj/machinery/porta_turret/ship/ballistic{ dir = 9 }, /turf/closed/wall/mineral/plastitanium, @@ -2337,12 +2325,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" = ( @@ -2910,12 +2898,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/mineral/plastitanium, /area/ship/engineering) -"Cz" = ( -/obj/machinery/porta_turret/ship/syndicate{ - dir = 8 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) "CA" = ( /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -3145,7 +3127,7 @@ req_access_txt = "20" }, /obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/under/syndicate/officer, +/obj/item/clothing/under/syndicate/aclf, /obj/item/clothing/suit/armor/vest/security/hos{ name = "Syndicate jacket" }, @@ -3155,13 +3137,13 @@ /obj/item/clothing/glasses/thermal/eyepatch, /obj/item/clothing/head/HoS/beret/syndicate, /obj/item/clothing/head/HoS/syndicate, -/obj/item/clothing/head/gorlexcap{ +/obj/item/clothing/head/aclfcap{ pixel_x = 5; pixel_y = -4 }, /obj/item/gun/ballistic/derringer/traitor, /obj/item/clothing/under/syndicate/sniper, -/obj/item/clothing/suit/gorlex, +/obj/item/clothing/suit/aclf, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/radio/headset/syndicate/alt/leader, @@ -3339,7 +3321,7 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "FY" = ( -/obj/machinery/porta_turret/ship/syndicate{ +/obj/machinery/porta_turret/ship/ballistic{ dir = 4 }, /turf/closed/wall/mineral/plastitanium, @@ -3810,8 +3792,8 @@ icon_state = "0-8" }, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/syndi/hl, -/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/mask/breath, +/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) "JH" = ( @@ -4249,7 +4231,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) "OP" = ( -/obj/machinery/porta_turret/ship/syndicate{ +/obj/machinery/porta_turret/ship/ballistic{ dir = 10 }, /turf/closed/wall/mineral/plastitanium, @@ -4381,8 +4363,8 @@ /obj/machinery/camera/autoname{ dir = 8 }, -/obj/item/clothing/suit/space/hardsuit/syndi/hl, -/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/mask/breath, +/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) "PK" = ( @@ -4458,7 +4440,7 @@ /turf/open/floor/pod/dark, /area/ship/medical) "Rp" = ( -/obj/machinery/porta_turret/ship/syndicate{ +/obj/machinery/porta_turret/ship/ballistic{ dir = 6 }, /turf/closed/wall/mineral/plastitanium, @@ -5192,7 +5174,7 @@ /turf/open/floor/mineral/plastitanium, /area/ship/medical) "XE" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ +/obj/machinery/porta_turret/ship/ballistic{ dir = 8 }, /turf/closed/wall/mineral/plastitanium, @@ -5449,7 +5431,7 @@ gN gN gN gN -ta +OP CM CM CM @@ -5502,7 +5484,7 @@ Aj Aj ti ti -Cz +XE lu lu Ep @@ -6153,7 +6135,7 @@ OQ OQ OQ OQ -bF +Rp CM CM CM diff --git a/_maps/shuttles/syndicate/syndicate_luxembourg.dmm b/_maps/shuttles/syndicate/syndicate_luxembourg.dmm index 6dde77123cba..1f8f1132f0d7 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/syndicate, -/obj/item/clothing/head/helmet/space/syndicate, +/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, +/obj/item/clothing/head/helmet/space/hardsuit/syndi/scarlet, /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 2c471b9ccb85..6390f43501cd 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/officer, +/obj/item/clothing/under/syndicate/aclf, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/clothing/head/HoS/syndicate, /obj/item/codespeak_manual/unlimited, @@ -2033,8 +2033,9 @@ /turf/open/floor/engine, /area/ship/engineering/engine) "ms" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ - dir = 9 +/obj/machinery/porta_turret/syndicate/energy{ + dir = 9; + faction = list("PlayerSyndicate") }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -3433,8 +3434,9 @@ /turf/open/floor/plating, /area/ship/engineering/atmospherics) "vd" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ - dir = 5 +/obj/machinery/porta_turret/syndicate/energy{ + dir = 5; + faction = list("PlayerSyndicate") }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -5349,9 +5351,9 @@ /obj/effect/turf_decal/spline/fancy/opaque/syndiered{ dir = 5 }, -/obj/item/clothing/head/gorlexcap, -/obj/item/clothing/suit/gorlex, -/obj/item/clothing/under/syndicate/officer, +/obj/item/clothing/head/aclfcap, +/obj/item/clothing/suit/aclf, +/obj/item/clothing/under/syndicate/aclf, /obj/structure/closet/secure_closet{ anchored = 1; icon_state = "syndicate"; @@ -5843,6 +5845,9 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /obj/machinery/door/airlock/hatch{ name = "Security" }, @@ -6464,8 +6469,9 @@ /turf/open/floor/engine, /area/ship/engineering/engine) "Mr" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ - dir = 6 +/obj/machinery/porta_turret/syndicate/energy{ + dir = 6; + faction = list("PlayerSyndicate") }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -8068,8 +8074,9 @@ }, /area/ship/crew/cryo) "We" = ( -/obj/machinery/porta_turret/ship/syndicate/heavy{ - dir = 10 +/obj/machinery/porta_turret/syndicate/energy{ + dir = 10; + faction = list("PlayerSyndicate") }, /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 1036db14cf53..353f77e4710d 100644 --- a/_maps/templates/holodeck_thunderdome1218.dmm +++ b/_maps/templates/holodeck_thunderdome1218.dmm @@ -99,6 +99,12 @@ }, /turf/open/floor/holofloor/asteroid, /area/template_noop) +"T" = ( +/obj/structure/table/wood, +/obj/item/tailclub, +/obj/item/spear, +/turf/open/floor/holofloor/asteroid, +/area/template_noop) "X" = ( /obj/structure/table/wood, /obj/item/scythe, @@ -169,7 +175,7 @@ a (6,1,1) = {" Q J -N +T p p p @@ -205,7 +211,7 @@ a (9,1,1) = {" H J -N +T p p p diff --git a/check_regex.yaml b/check_regex.yaml index a2bb022d2b90..c051d974de12 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: [44, "/obj text paths", '"/obj'] + - exactly: [49, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - exactly: [117, "text2path uses", "text2path"] @@ -52,9 +52,6 @@ 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 36fc398d942c..8cdb11fd00b1 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -154,6 +154,7 @@ #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 4600cb626da0..fc720d2c96fd 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -292,6 +292,16 @@ #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 @@ -349,6 +359,17 @@ 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 25f3717011a9..ca7a54d6cfc1 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, GLOBAL_PROC_REF(___callbacknew), typepath, args) +#define CALLBACK_NEW(typepath, args) CALLBACK(GLOBAL_PROC, /proc/___callbacknew, typepath, args) diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index c428e1e7dd53..5814f8f27a1f 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -164,8 +164,6 @@ #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 7df3a453acfb..36da2cc3ae7d 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -134,11 +134,8 @@ 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 861bb843d793..8f1f667a79f7 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, GLOBAL_PROC_REF(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, /proc/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, GLOBAL_PROC_REF(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, /proc/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 004b2f23fedf..bbdbe022a9df 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -752,7 +752,3 @@ /// 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 deleted file mode 100644 index a6fbc5c87546..000000000000 --- a/code/__DEFINES/factions.dm +++ /dev/null @@ -1,6 +0,0 @@ -//"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 32a08f38861b..446a40998898 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 "Adobe Garamond" +#define FOUNTAIN_PEN_FONT "Segoe Script" /// 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 8fd5d549c086..b824bd2a17b1 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -61,6 +61,7 @@ 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 97b9c9d82aad..a1494018d434 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -42,7 +42,6 @@ //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/mobs.dm b/code/__DEFINES/mobs.dm index ad9d5ae5abc8..99cff793a761 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -87,8 +87,10 @@ #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" @@ -224,6 +226,7 @@ #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 865470774039..570edb76d8c4 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -64,13 +64,3 @@ /// 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 dca885b37b95..86c3ad465250 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, 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_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_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_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE) +#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/______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 c66d3f34c1ad..8e2f1e52758d 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 76e5fa22d474..cab4430a88df 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -110,12 +110,6 @@ #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) @@ -164,9 +158,8 @@ #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 RUSTG_CALL(RUST_G, "unix_timestamp")() + return text2num(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 a470b9087b2e..b349387832ea 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -71,7 +71,10 @@ #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 b62bbee4259a..6d87700f3d24 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) - LIBCALL(debug_server, "auxtools_shutdown")() + call(debug_server, "auxtools_shutdown")() . = ..() diff --git a/code/__DEFINES/statpanel.dm b/code/__DEFINES/statpanel.dm index c5378235fc63..8ce6ba624a1b 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/lore, + /client/verb/forum, /client/verb/github, /client/verb/joindiscord, )) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index b0e97e05e9b2..d468d6044196 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.7.0" +#define TGS_DMAPI_VERSION "6.6.1" // All functions and datums outside this document are subject to change with any version and should not be relied on. diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm index 494859934cdb..fda27f56d1a3 100644 --- a/code/__DEFINES/time.dm +++ b/code/__DEFINES/time.dm @@ -2,9 +2,8 @@ #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)]:[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 ROUND_TIME ( "[world.time - SSticker.round_start_time > MIDNIGHT_ROLLOVER ? "[round((world.time - SSticker.round_start_time)/MIDNIGHT_ROLLOVER)]:[worldtime2text()]" : worldtime2text()]" ) + #define JANUARY 1 #define FEBRUARY 2 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 69de29d4cd70..ea51a1c96113 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -146,6 +146,7 @@ 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" @@ -289,7 +290,6 @@ 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,6 +322,7 @@ 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" @@ -424,8 +425,6 @@ 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 16c70f7d2dc5..d1961907e1e8 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 = LIBCALL(LIB,"auxtools_init")();\ + var/string = call(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)){\ - LIBCALL(LIB,"auxtools_shutdown")();\ + call(LIB,"auxtools_shutdown")();\ GLOB.auxtools_initialized[LIB] = FALSE;\ }\ diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 1ab889987695..df8a952c05b5 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, "MENTOR: [text]") + WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]MENTOR: [text]") /* All other items are public. */ /proc/log_game(text) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 6dc31eea2fdb..2b3f3e41e444 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, GLOBAL_PROC_REF(remove_images_from_clients), I, show_to), duration, TIMER_CLIENT_TIME) + addtimer(CALLBACK(GLOBAL_PROC, /proc/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 1048aaa5c861..56f75905b7c4 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -39,6 +39,7 @@ 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 8838ba324530..e824b3d82273 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -78,6 +78,8 @@ 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) @@ -116,6 +118,7 @@ "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), @@ -241,7 +244,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, ignore_loc_change = FALSE) +/proc/do_mob(mob/user , mob/target, time = 3 SECONDS, uninterruptible = FALSE, progress = TRUE, datum/callback/extra_checks = null) if(!user || !target) return FALSE @@ -281,12 +284,7 @@ GLOBAL_LIST_EMPTY(species_list) drifting = FALSE user_loc = user.loc - - 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())) + if((!drifting && user.loc != user_loc) || target.loc != target_loc || user.get_active_held_item() != holding || user.incapacitated() || (extra_checks && !extra_checks.Invoke())) . = FALSE break if(!QDELETED(progbar)) diff --git a/code/__HELPERS/nameof.dm b/code/__HELPERS/nameof.dm deleted file mode 100644 index 7cd5777f4652..000000000000 --- a/code/__HELPERS/nameof.dm +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 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 5d96dc8af34c..213bce08f003 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(REALTIMEOFDAY - SSticker.round_start_timeofday)]" + parts += "[FOURSPACES]Shift Duration: [DisplayTimeText(world.timeofday - 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,15 +379,13 @@ 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 [location] as [M.real_name]." + parts += "You managed to survive the events in [station_name()] as [M.real_name]." else parts += "
" - parts += "You did not survive the events [location]..." + parts += "You did not survive the events in [station_name()]..." else parts += "
" diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index a395552ee8d4..4795dd29e5f7 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -1,11 +1,17 @@ -/proc/time_stamp(format = "YYYY-MM-DD hh:mm:ss", show_ds) +//Returns the world time in english +/proc/worldtime2text() + return gameTimestamp("hh:mm:ss", world.time) + +/proc/time_stamp(format = "hh:mm:ss", show_ds) var/time_string = time2text(world.timeofday, format) return show_ds ? "[time_string]:[world.timeofday % 10]" : time_string -/proc/game_timestamp(format = "hh:mm:ss", wtime = world.time) +/proc/gameTimestamp(format = "hh:mm:ss", wtime=null) + if(!wtime) + 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) @@ -18,49 +24,15 @@ else . += " AM" -/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 + 1 - 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(1) - monthname = "January" - if(2) - monthname = "February" - if(3) - monthname = "March" - if(4) - monthname = "April" - if(5) - monthname = "May" - if(6) - monthname = "June" - if(7) - monthname = "Sol" - if(8) - monthname = "July" - if(9) - monthname = "August" - if(10) - monthname = "September" - if(11) - monthname = "October" - if(12) - monthname = "November" - if(13) - monthname = "December" - if(14) - return "Year Day, [year] FSC" - - return "[monthname] [day_of_month], [year] FSC" +/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) //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 94039f138721..efd551badefb 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -32,27 +32,6 @@ 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 @@ -1412,9 +1391,12 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) . = CB.Invoke() usr = temp -#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##target, ##var_name, ##var_value) +//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) //dupe code because dm can't handle 3 level deep macros -#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##datum, NAMEOF(##datum, ##var), ##var_value) +#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##datum, NAMEOF(##datum, ##var), ##var_value) /proc/___callbackvarset(list_or_datum, var_name, var_value) if(length(list_or_datum)) @@ -1426,8 +1408,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, GLOBAL_PROC_REF(___TraitAdd), ##target, ##trait, ##source) -#define TRAIT_CALLBACK_REMOVE(target, trait, source) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___TraitRemove), ##target, ##trait, ##source) +#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) ///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 08ca94db6c6a..d711276efc27 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,13 +12,8 @@ #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 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 +#error Please consider downgrading to 514.1575 or lower. +#endif*/ // Keep savefile compatibilty at minimum supported level #if DM_VERSION >= 515 @@ -48,16 +43,3 @@ /// 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 419abcd6be70..0b73aa7172c3 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -42,7 +42,6 @@ #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; @@ -53,6 +52,23 @@ /// 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 @@ -79,14 +95,6 @@ #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 1518908fa9a0..dafc759ec563 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) - LIBCALL(dll, "auxtools_init")() + call(dll, "auxtools_init")() enable_debugging() diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index aca090086487..66196b1a6dd6 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -43,6 +43,7 @@ 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) @@ -127,7 +128,7 @@ GLOBAL_LIST_INIT(ai_core_display_screens, sortList(list( "Helios", "House", "Inverted", - "Lamp", + "Lamp", //WS edit, moff ai display "Matrix", "Monochrome", "Murica", diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index ff4237d1e892..7f1e2693f893 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -34,7 +34,6 @@ 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 fb00d8bdf283..0c28353395d4 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -35,8 +35,6 @@ 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 ecc1acb6f0e1..0b517e50160c 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -14,6 +14,7 @@ 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 e25b0b6e9a87..674b15ceae2c 100644 --- a/code/_globalvars/lists/poll_ignore.dm +++ b/code/_globalvars/lists/poll_ignore.dm @@ -11,6 +11,7 @@ #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" @@ -35,6 +36,7 @@ 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 c91b96db8de9..3239cb53b8d0 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -17,6 +17,7 @@ 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 ac401489f40a..00a16eefda33 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_REF(clear_mouseObject)) + RegisterSignal(mouseObject, COMSIG_PARENT_QDELETING, .proc/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 43ae8ffbe246..e8e6daccf45b 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_REF(alert_timeout), thealert, category), thealert.timeout) + addtimer(CALLBACK(src, .proc/alert_timeout, thealert, category), thealert.timeout) thealert.timeout = world.time + thealert.timeout - world.tick_lag return thealert @@ -164,6 +164,11 @@ 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." @@ -308,7 +313,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." add_overlay(receiving) src.receiving = receiving src.offerer = offerer - RegisterSignal(taker, COMSIG_MOVABLE_MOVED, PROC_REF(check_in_range), override = TRUE) //Override to prevent runtimes when people offer a item multiple times + RegisterSignal(taker, COMSIG_MOVABLE_MOVED, .proc/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]!") @@ -336,7 +341,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." . = ..() name = "[offerer] is offering a high-five!" desc = "[offerer] is offering a high-five! Click this alert to slap it." - RegisterSignal(offerer, COMSIG_PARENT_EXAMINE_MORE, PROC_REF(check_fake_out)) + RegisterSignal(offerer, COMSIG_PARENT_EXAMINE_MORE, .proc/check_fake_out) /atom/movable/screen/alert/give/highfive/handle_transfer() var/mob/living/carbon/taker = owner @@ -354,7 +359,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." offerer.visible_message(span_notice("[rube] rushes in to high-five [offerer], but-"), span_nicegreen("[rube] falls for your trick just as planned, lunging for a high-five that no longer exists! Classic!"), ignored_mobs=rube) to_chat(rube, span_nicegreen("You go in for [offerer]'s high-five, but-")) - addtimer(CALLBACK(src, PROC_REF(too_slow_p2), offerer, rube), 0.5 SECONDS) + addtimer(CALLBACK(src, .proc/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 0ee063593a8b..01e4cd1de1f4 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_REF(create_credit), C), CREDIT_SPAWN_SPEED * i + (3 * CREDIT_SPAWN_SPEED), TIMER_CLIENT_TIME) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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_REF(add_to_clients)) + INVOKE_ASYNC(src, .proc/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 b286ff28f4c5..14b95e421c3d 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_REF(clear_fullscreen_after_animate), screen), animated, TIMER_CLIENT_TIME) + addtimer(CALLBACK(src, .proc/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 ca383805cc34..36d278adac0d 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 = PARALLAX_DELAY_DEFAULT + C.parallax_throttle = FALSE 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_REF(update_parallax_motionblur), C, animatedir, new_parallax_movedir, newtransform) + var/datum/callback/CB = CALLBACK(src, .proc/update_parallax_motionblur, C, animatedir, new_parallax_movedir, newtransform) if(skip_windups) CB.Invoke() else @@ -298,6 +298,13 @@ 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 6bc47aa6bcb8..b672b901d086 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_REF(handle_parent_del)) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/handle_parent_del) /atom/movable/screen/radial/proc/handle_parent_del() SIGNAL_HANDLER @@ -62,18 +62,9 @@ GLOBAL_LIST_EMPTY(radial_menus) parent.finished = TRUE /datum/radial_menu - /// 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/choices = list() //List of choice id's + var/list/choices_icons = list() //choice_id -> icon + var/list/choices_values = list() //choice_id -> choice var/list/page_data = list() //list of choices per page @@ -208,7 +199,6 @@ 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 @@ -255,17 +245,11 @@ 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(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) +/datum/radial_menu/proc/extract_image(E) + var/mutable_appearance/MA = new /mutable_appearance(E) if(MA) MA.layer = ABOVE_HUD_LAYER MA.appearance_flags |= RESET_TRANSFORM @@ -348,15 +332,3 @@ 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 8615b9a9aa6d..557096d83c82 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_REF(clear_streak)), 20, TIMER_UNIQUE | TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, .proc/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 8a25babbb010..22c19f7cf627 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_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)) + 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)) 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_STATIC(src, max_val), NAMEOF_STATIC(src, min_val), NAMEOF_STATIC(src, integer)) + var/static/list/banned_edits = list(NAMEOF(src, max_val), NAMEOF(src, min_val), NAMEOF(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 c806ec40837a..70fb5d107f3f 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, GLOBAL_PROC_REF(message_admins), text), 0) + addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, text), 0) diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 6a5959574754..41a470aac610 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/loreurl - config_entry_value = "https://shiptest.net/wiki/Lore_Primer" +/datum/config_entry/string/forumurl + config_entry_value = "https://shiptest.net/discord" /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 302c0de4a427..f89030c51842 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, GLOBAL_PROC_REF(cmp_subsystem_priority)) + sortTim(tickersubsystems, /proc/cmp_subsystem_priority) for(var/I in runlevel_sorted_subsystems) - sortTim(I, GLOBAL_PROC_REF(cmp_subsystem_priority)) + sortTim(runlevel_sorted_subsystems, /proc/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 0fd7090ff17d..e5584df31e5e 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, TYPE_PROC_REF(/datum/DBQuery, warn_execute)) + INVOKE_ASYNC(query, /datum/DBQuery.proc/warn_execute) else - INVOKE_ASYNC(query, TYPE_PROC_REF(/datum/DBQuery, Execute)) + INVOKE_ASYNC(query, /datum/DBQuery.proc/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 ae0074e9fb5b..4e8a23b5ba3c 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_REF(wipe_color_and_text), wipe_colours), 100) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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(show_ds = TRUE))) + 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))) // 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, TYPE_PROC_REF(/mob, playsound_local), epicenter, null, rand(FREQ_LOWER, FREQ_UPPER), 1, frequency, null, null, FALSE, hull_creaking_sound, 0), CREAK_DELAY) + 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) 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 da58d4764516..b362a7ed4e62 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, TYPE_PROC_REF(/datum, find_references)) + INVOKE_ASYNC(D, /datum/proc/find_references) ref_searching = TRUE #ifdef GC_FAILURE_HARD_LOOKUP else - INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references)) + INVOKE_ASYNC(D, /datum/proc/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 631685fe2910..eadf8d219324 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_REF(client_connected)) + RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT, .proc/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_REF(set_all_measures), TRUE, TRUE), 20 SECONDS, TIMER_STOPPABLE) + veto_timer_id = addtimer(CALLBACK(src, .proc/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_REF(client_connected)) + RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT, .proc/client_connected) else UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index f9c5c9c86399..28ab56d05211 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -134,6 +134,17 @@ 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 @@ -141,6 +152,9 @@ 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 b96a4944c812..eb6ccfa3c7b4 100644 --- a/code/controllers/subsystem/overmap.dm +++ b/code/controllers/subsystem/overmap.dm @@ -31,9 +31,6 @@ 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() @@ -230,18 +227,13 @@ 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] - 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 + return new /datum/overmap/ship/controlled(ship_loc, template) /** * Creates an overmap object for each ruin level, making them accessible. @@ -270,7 +262,7 @@ SUBSYSTEM_DEF(overmap) var/datum/map_template/ruin/used_ruin = ispath(ruin_type) ? (new ruin_type) : ruin_type // name is random but PROBABLY unique - var/encounter_name = dynamic_datum.planet_name || "\improper Uncharted Space [dynamic_datum.x]/[dynamic_datum.y]-[rand(1111, 9999)]" + var/encounter_name = dynamic_datum.planet_name || "Dynamic Overmap Encounter #[rand(1111,9999)]-[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, @@ -326,7 +318,7 @@ SUBSYSTEM_DEF(overmap) var/obj/docking_port/stationary/primary_dock = new(primary_docking_turf) primary_dock.dir = NORTH - primary_dock.name = "[encounter_name] docking location #1" + primary_dock.name = "\improper Uncharted Space" primary_dock.height = RESERVE_DOCK_MAX_SIZE_SHORT primary_dock.width = RESERVE_DOCK_MAX_SIZE_LONG primary_dock.dheight = 0 @@ -335,7 +327,7 @@ SUBSYSTEM_DEF(overmap) var/obj/docking_port/stationary/secondary_dock = new(secondary_docking_turf) secondary_dock.dir = NORTH - secondary_dock.name = "[encounter_name] docking location #2" + secondary_dock.name = "\improper Uncharted Space" secondary_dock.height = RESERVE_DOCK_MAX_SIZE_SHORT secondary_dock.width = RESERVE_DOCK_MAX_SIZE_LONG secondary_dock.dheight = 0 @@ -358,7 +350,7 @@ SUBSYSTEM_DEF(overmap) var/obj/docking_port/stationary/tertiary_dock = new(tertiary_docking_turf) tertiary_dock.dir = NORTH - tertiary_dock.name = "[encounter_name] docking location #3" + tertiary_dock.name = "\improper Uncharted Space" tertiary_dock.height = RESERVE_DOCK_MAX_SIZE_SHORT tertiary_dock.width = RESERVE_DOCK_MAX_SIZE_LONG tertiary_dock.dheight = 0 @@ -367,7 +359,7 @@ SUBSYSTEM_DEF(overmap) var/obj/docking_port/stationary/quaternary_dock = new(quaternary_docking_turf) quaternary_dock.dir = NORTH - quaternary_dock.name = "[encounter_name] docking location #4" + quaternary_dock.name = "\improper Uncharted Space" 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 7c2bf71cad6a..ae8ca728e9ef 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_REF(spam_again)), spam_delay) + addtimer(CALLBACK(src, .proc/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 90a6f2cfbbf1..3083fcfdaed7 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -8,12 +8,14 @@ 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(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 + 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. 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 21ee7ea60b3c..ccbea7930663 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, TYPE_PROC_REF(/datum/flowcache, toolong), free), 150, TIMER_STOPPABLE) + var/t = addtimer(CALLBACK(src, /datum/flowcache.proc/toolong, free), 150, TIMER_STOPPABLE) flow[free] = t flow[t] = M return free diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 9dc117783af9..b5b8113384df 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", "RILENA Super Fan"), \ + list("Clown Fan","Mime 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 90e3f3a73cae..9ec1ce5125b2 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_REF(initiate_jump)), jump_request_time * modifier, TIMER_STOPPABLE) + jump_timer = addtimer(CALLBACK(src, .proc/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 95e40bff159f..1b844f168cf9 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -11,17 +11,18 @@ 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", - "Local Sector Time: [SSticker.round_start_timeofday ? "[station_time_timestamp()] [sector_datestamp()]" : "The round hasn't started yet!"]", + "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!"]", "\n", - "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)]" + "Playing/Connected: [get_active_player_count()]/[GLOB.clients.len]" ) if(SSshuttle.jump_mode != BS_JUMP_IDLE) @@ -132,7 +133,7 @@ SUBSYSTEM_DEF(statpanels) if(length(turfitems) < 30) // only create images for the first 30 items on the turf, for performance reasons if(!(REF(turf_content) in cached_images)) cached_images += REF(turf_content) - turf_content.RegisterSignal(turf_content, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/atom, remove_from_cache)) // we reset cache if anything in it gets deleted + turf_content.RegisterSignal(turf_content, COMSIG_PARENT_QDELETING, /atom/.proc/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 0260e952d10d..78565227e014 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_REF(on_thrownthing_qdel)) + RegisterSignal(thrownthing, COMSIG_PARENT_QDELETING, .proc/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 0a5c787d3bfd..fabb64505899 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -36,11 +36,10 @@ 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 - /// 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/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. var/totalPlayers = 0 //used for pregame stats on statpanel var/totalPlayersReady = 0 //used for pregame stats on statpanel @@ -59,6 +58,11 @@ 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 @@ -132,6 +136,7 @@ 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)) @@ -275,7 +280,7 @@ SUBSYSTEM_DEF(ticker) cb.InvokeAsync() LAZYCLEARLIST(round_start_events) - log_world("Game start took [(REALTIMEOFDAY - init_start)/10]s") + log_world("Game start took [(world.timeofday - init_start)/10]s") round_start_time = world.time round_start_timeofday = world.timeofday SSdbcore.SetRoundStart() @@ -503,7 +508,7 @@ SUBSYSTEM_DEF(ticker) var/mob/dead/new_player/player = i if(player.ready == PLAYER_READY_TO_OBSERVE && player.mind) //Break chain since this has a sleep input in it - addtimer(CALLBACK(player, TYPE_PROC_REF(/mob/dead/new_player, make_me_an_observer)), 1) + addtimer(CALLBACK(player, /mob/dead/new_player.proc/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 68092077d784..176f91cf5808 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_REF(cmp_timer)) + sortTim(alltimers, .proc/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 1e697327c844..ab220b4382b4 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/organ/tail/lizard, - /obj/item/reagent_containers/food/drinks/bottle/lizardwine)), + /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)), "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/suit/space/space_ninja, + /obj/item/clothing/head/kitty/genuine, /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,6 +177,7 @@ 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 b06baa1c49c2..ba64c98c56c9 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, span_purple(examine_block(text))) + to_chat(world, "\n[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 = "[text]\nType vote or click here to place your votes.\nYou have [DisplayTimeText(vp)] to vote." + var/vote_message = "\n[text]\nType vote or click here to place your votes.\nYou have [DisplayTimeText(vp)] to vote." if(observer_vote_allowed) - to_chat(world, examine_block(vote_message)) - SEND_SOUND(world, sound('sound/misc/compiler-stage2.ogg')) + to_chat(world, vote_message) + SEND_SOUND(world, sound('sound/misc/vinethud.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/compiler-stage2.ogg')) - to_chat(C.mob, examine_block(vote_message)) + SEND_SOUND(C, sound('sound/misc/vinethud.ogg')) + to_chat(C.mob, 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 ff03b689085d..d96e43c08be2 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_REF(OnUpdatedIcon)) + RegisterSignal(Target, COMSIG_ATOM_UPDATED_ICON, .proc/OnUpdatedIcon) /datum/action/Destroy() if(owner) @@ -47,7 +47,7 @@ return Remove(owner) owner = M - RegisterSignal(owner, COMSIG_PARENT_QDELETING, PROC_REF(owner_deleted)) + RegisterSignal(owner, COMSIG_PARENT_QDELETING, .proc/owner_deleted) //button id generation var/counter = 0 diff --git a/code/datums/aquarium.dm b/code/datums/aquarium.dm index 86551b9d25ce..2bca6af8c26d 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_REF(generate_animation)) + RegisterSignal(parent, animation_update_signals, .proc/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_REF(enter_aquarium)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/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_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)) + 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) if(processing) START_PROCESSING(SSobj, src) diff --git a/code/datums/beam.dm b/code/datums/beam.dm index 3044aacddfe7..6e3ce4bb48ae 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_REF(redrawing)) - RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(redrawing)) + RegisterSignal(origin, COMSIG_MOVABLE_MOVED, .proc/redrawing) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/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, TYPE_PROC_REF(/mob, emote), "cough"), 6) - addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, emote), "cough"), 12) + addtimer(CALLBACK(owner, /mob/.proc/emote, "cough"), 6) + addtimer(CALLBACK(owner, /mob/.proc/emote, "cough"), 12) owner.emote("cough") ..() diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index 00ecd3a49c48..c2446f882b60 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_REF(freak_out), null, trigger_regex.group[2]), 10) //to react AFTER the chat message + addtimer(CALLBACK(src, .proc/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 979c43e8e13e..4e7563c5fb81 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, TYPE_PROC_REF(/mob/living/carbon, vomit), high_stress), 50) //blood vomit if high stress + addtimer(CALLBACK(owner, /mob/living/carbon.proc/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_REF(hypnotrigger)), 10) //to react AFTER the chat message + addtimer(CALLBACK(src, .proc/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 9c447f4ab10a..68dae74b1f8c 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_REF(snapback)), 100) + addtimer(CALLBACK(src, .proc/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_REF(cease_whispering)), rand(50, 300)) + addtimer(CALLBACK(src, .proc/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_REF(fade_in)), duration) + addtimer(CALLBACK(src, .proc/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 ab391202a9d3..78eb23a85b0b 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, TYPE_PROC_REF(/datum/brain_trauma/severe/split_personality, switch_personalities)), 10) + addtimer(CALLBACK(src, /datum/brain_trauma/severe/split_personality.proc/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 6aba94212699..c6d98adb0c0d 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_REF(user_deleted)) + RegisterSignal(user, COMSIG_PARENT_QDELETING, .proc/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_REF(close)), timeout) + addtimer(CALLBACK(src, .proc/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"] = (settings["mainsettings"][setting]["value"] == "Yes") ? "No" : "Yes" + settings["mainsettings"][setting]["value"] = input(user, "[settings["mainsettings"][setting]["desc"]]?") in list("Yes","No") 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 4fa2078f152b..76de87bef7a5 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_REF(procname) + *.proc/procname * - * `CALLBACK(src, PROC_REF(some_proc_here))` + * `CALLBACK(src, .proc/some_proc_here)` * * * proc defined on a parent of a some type * - * `TYPE_PROC_REF(/some/type, some_proc_here)` + * `/some/type/.proc/some_proc_here` * * Otherwise you must always provide the full typepath of the proc (/type/of/thing/proc/procname) */ @@ -117,12 +117,6 @@ 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)) @@ -158,12 +152,6 @@ 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 c27e0bd1b7ae..0b4b33ce5942 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_REF(generate_image), text, target, owner, extra_classes, lifespan) + INVOKE_ASYNC(src, .proc/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_REF(on_parent_qdel)) + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/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 c36fb3961664..883e9fb99dee 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_REF(replacement_cinematic)) + RegisterSignal(SSdcs, COMSIG_GLOB_PLAY_CINEMATIC, .proc/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_REF(show_to)) + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGIN, .proc/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 88ef0d97fabf..65b97e09b1a2 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_REF(delete_self), + .proc/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 7cdb1db8f152..eede283e8b81 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_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) else if(ismob(parent)) - RegisterSignal(parent, COMSIG_MOB_RECEIVE_MAGIC, PROC_REF(protect)) + RegisterSignal(parent, COMSIG_MOB_RECEIVE_MAGIC, .proc/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_REF(protect), TRUE) + RegisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC, .proc/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 86551b9d25ce..2bca6af8c26d 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_REF(generate_animation)) + RegisterSignal(parent, animation_update_signals, .proc/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_REF(enter_aquarium)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/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_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)) + 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) if(processing) START_PROCESSING(SSobj, src) diff --git a/code/datums/components/archaeology.dm b/code/datums/components/archaeology.dm index c4f0d7dc3d59..3be37b94db69 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_REF(Dig)) - RegisterSignal(parent, COMSIG_ATOM_EX_ACT, PROC_REF(BombDig)) - RegisterSignal(parent, COMSIG_ATOM_SING_PULL, PROC_REF(SingDig)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/Dig) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/BombDig) + RegisterSignal(parent, COMSIG_ATOM_SING_PULL, .proc/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 d90da9ee24a3..49f79930352c 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_REF(examine)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(applyplate)) - RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, PROC_REF(dropplates)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/applyplate) + RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, .proc/dropplates) if(istype(parent, /obj/mecha/working/ripley)) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(apply_mech_overlays)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_mech_overlays) if(_maxamount) maxamount = _maxamount diff --git a/code/datums/components/art.dm b/code/datums/components/art.dm index e00261b6d9b3..13249a19e736 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_REF(on_obj_examine)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_obj_examine) else - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_other_examine)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_other_examine) if(isstructure(parent)) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(apply_moodlet)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/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_REF(examine), source, M) + INVOKE_ASYNC(src, .proc/examine, source, M) /datum/component/art/proc/examine(datum/source, mob/M) @@ -51,17 +51,3 @@ 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 8d7c7a08a65f..4ac2c77525a6 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_REF(speciesCheck)) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/speciesCheck) else - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(mobCheck)) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/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 fe3c06e3ad5a..9b3398b4ce96 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_REF(enter_area)) - RegisterSignal(parent, COMSIG_EXIT_AREA, PROC_REF(exit_area)) + RegisterSignal(parent, COMSIG_ENTER_AREA, .proc/enter_area) + RegisterSignal(parent, COMSIG_EXIT_AREA, .proc/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 1b7bc8b3afc9..c8b4b53c26ba 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_REF(say_react)) + RegisterSignal(SSdcs, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/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 03afc96182dc..5f16085b7927 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_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) + 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) //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_REF(on_moved)) - RegisterSignal(wielder, COMSIG_STEP_ON_BLOOD, PROC_REF(on_step_blood)) + RegisterSignal(wielder, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(wielder, COMSIG_STEP_ON_BLOOD, .proc/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_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)) + 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) /datum/component/bloodysoles/feet/update_icon() . = list() diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm index 6923760a7705..9195d425b342 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_REF(onItemAttack)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/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_REF(startButcher), source, M, user) + INVOKE_ASYNC(src, .proc/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_REF(startNeckSlice), source, H, user) + INVOKE_ASYNC(src, .proc/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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 33706c7c6d68..aac5f65a3956 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(on_entered)) + RegisterSignal(get_turf(parent), COMSIG_ATOM_ENTERED, .proc/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 f18002a05bd3..dfb3bafbfb0e 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_REF(Entered)) + RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/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_REF(drop), thing) + INVOKE_ASYNC(src, .proc/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 fe957e3b94a3..d8a3ac8fbd3e 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_REF(on_moved)) - RegisterSignal(tracked, COMSIG_PARENT_QDELETING, PROC_REF(handle_tracked_qdel)) + RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(tracked, COMSIG_PARENT_QDELETING, .proc/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_REF(on_moved)) + RegisterSignal(container, COMSIG_MOVABLE_MOVED, .proc/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 297227e2aedd..b758b6ad5f32 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_REF(on_moved)) - RegisterSignal(tracked, COMSIG_PARENT_QDELETING, PROC_REF(handle_tracked_qdel)) + RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(tracked, COMSIG_PARENT_QDELETING, .proc/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 093841833d8c..5642b2ed4e2d 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_REF(on_moved)) - RegisterSignal(tracked, COMSIG_PARENT_QDELETING, PROC_REF(handle_tracked_qdel)) + RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(tracked, COMSIG_PARENT_QDELETING, .proc/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_REF(on_moved)) + RegisterSignal(container, COMSIG_MOVABLE_MOVED, .proc/on_moved) if(on_same_turf && !forced) return diff --git a/code/datums/components/construction.dm b/code/datums/components/construction.dm index 640aea796518..ad1392c116d5 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_REF(examine)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(action)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/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_REF(check_step), I, user) + INVOKE_ASYNC(src, .proc/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 df5ae1319c2e..a804ec657526 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_REF(create_mob_button)) + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/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_REF(component_ui_interact)) + RegisterSignal(C, COMSIG_CLICK, .proc/component_ui_interact) /datum/component/personal_crafting var/busy @@ -318,7 +318,7 @@ SIGNAL_HANDLER if(user == parent) - INVOKE_ASYNC(src, PROC_REF(ui_interact), user) + INVOKE_ASYNC(src, .proc/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 9ec90bf09eac..96a013df406a 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -113,6 +113,35 @@ 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 @@ -343,6 +372,28 @@ 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 @@ -1113,23 +1164,9 @@ /datum/crafting_recipe/breakawayflask name = "Breakaway Flask" - result = /obj/item/reagent_containers/food/drinks/breakawayflask + result = /obj/item/reagent_containers/food/drinks/drinkingglass/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_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 + category = CAT_MISC diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm index 4caaa55ded29..d02a60c0178f 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/tailoring.dm @@ -236,3 +236,13 @@ 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 019bb7362bd2..fcd1f1b8cc74 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_REF(clean_up)) + .proc/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 f34960db1072..e48651ea7d86 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_REF(orbit_begin)) - RegisterSignal(parent, COMSIG_ATOM_ORBIT_STOP, PROC_REF(orbit_stop)) + RegisterSignal(parent, COMSIG_ATOM_ORBIT_BEGIN, .proc/orbit_begin) + RegisterSignal(parent, COMSIG_ATOM_ORBIT_STOP, .proc/orbit_stop) deadchat_mode = _deadchat_mode inputs = _inputs input_cooldown = _input_cooldown if(deadchat_mode == DEMOCRACY_MODE) - timerid = addtimer(CALLBACK(src, PROC_REF(democracy_loop)), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, .proc/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_REF(remove_cooldown), source.ckey), input_cooldown) + addtimer(CALLBACK(src, .proc/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_REF(democracy_loop)), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, .proc/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_REF(deadchat_react)) + RegisterSignal(orbiter, COMSIG_MOB_DEADSAY, .proc/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 b2a2cddf9c9b..19e41148d3bd 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_REF(rewind_living) + rewind_type = .proc/rewind_living if(iscarbon(parent)) var/mob/living/carbon/C = parent saved_bodyparts = C.save_bodyparts() - rewind_type = PROC_REF(rewind_carbon) + rewind_type = .proc/rewind_carbon else if(isanimal(parent)) var/mob/living/simple_animal/M = parent brute_loss = M.bruteloss - rewind_type = PROC_REF(rewind_animal) + rewind_type = .proc/rewind_animal else if(isobj(parent)) var/obj/O = parent integrity = O.obj_integrity - rewind_type = PROC_REF(rewind_obj) + rewind_type = .proc/rewind_obj addtimer(CALLBACK(src, rewind_type), rewind_interval) diff --git a/code/datums/components/deployable.dm b/code/datums/components/deployable.dm index 0e38fa84e236..efb19f9246af 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_REF(examine)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_hand)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/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_REF(deploy), source, user, location, direction) + INVOKE_ASYNC(src, .proc/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 0f90bf623aac..cda6a31f270d 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_REF(open_doors)) + RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/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 6439e49b831f..9256c4310a70 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_REF(reducebang) + proctype = .proc/reducebang /datum/component/wearertargeting/earprotection/Initialize(_valid_slots) . = ..() diff --git a/code/datums/components/edible.dm b/code/datums/components/edible.dm index 3a047d082868..b9a89ad9de90 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_REF(examine)) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_ANIMAL, PROC_REF(UseByAnimal)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_ANIMAL, .proc/UseByAnimal) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(UseFromHand)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/UseFromHand) else if(isturf(parent)) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(TryToEatTurf)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/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 fb69b67a5e9d..da801bc9e0bb 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_REF(var_edit_react)) + RegisterSignal(SSdcs, COMSIG_GLOB_VAR_EDIT, .proc/var_edit_react) /datum/component/edit_complainer/proc/var_edit_react(datum/source, list/arguments) SIGNAL_HANDLER var/atom/movable/master = parent - master.visible_message(pick(say_lines)) + master.say(pick(say_lines)) diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index ee789d3f9829..dcb4aff50bdf 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_REF(jostleCheck)) - RegisterSignal(parent, COMSIG_CARBON_EMBED_RIP, PROC_REF(ripOutCarbon)) - RegisterSignal(parent, COMSIG_CARBON_EMBED_REMOVAL, PROC_REF(safeRemoveCarbon)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/jostleCheck) + RegisterSignal(parent, COMSIG_CARBON_EMBED_RIP, .proc/ripOutCarbon) + RegisterSignal(parent, COMSIG_CARBON_EMBED_REMOVAL, .proc/safeRemoveCarbon) else if(isclosedturf(parent)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examineTurf)) - RegisterSignal(parent, COMSIG_PARENT_QDELETING, PROC_REF(itemMoved)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examineTurf) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/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_REF(byeItemCarbon)) + RegisterSignal(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING), .proc/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_REF(complete_rip_out), victim, I, limb, time_taken) + INVOKE_ASYNC(src, .proc/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, TYPE_PROC_REF(/mob, put_in_hands), weapon) + INVOKE_ASYNC(victim, /mob.proc/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_REF(itemMoved)) + RegisterSignal(weapon, COMSIG_MOVABLE_MOVED, .proc/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_REF(apply_overlay)) + RegisterSignal(hit,COMSIG_ATOM_UPDATE_OVERLAYS,.proc/apply_overlay) hit.update_appearance() if(harmful) diff --git a/code/datums/components/empprotection.dm b/code/datums/components/empprotection.dm index bb94b08e55a9..513370f3d5fa 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_REF(getEmpFlags)) + RegisterSignal(parent, list(COMSIG_ATOM_EMP_ACT), .proc/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 abf16ecd4be5..360ab1dca847 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_REF(explodable_attack)) - RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, PROC_REF(explodable_insert_item)) - RegisterSignal(parent, COMSIG_ATOM_EX_ACT, PROC_REF(detonate)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/explodable_attack) + RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, .proc/explodable_insert_item) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/detonate) if(ismovable(parent)) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(explodable_impact)) - RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(explodable_bump)) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/explodable_impact) + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/explodable_bump) if(isitem(parent)) - RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), PROC_REF(explodable_attack)) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + 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) @@ -71,7 +71,7 @@ /datum/component/explodable/proc/on_equip(datum/source, mob/equipper, slot) SIGNAL_HANDLER - RegisterSignal(equipper, COMSIG_MOB_APPLY_DAMGE, PROC_REF(explodable_attack_zone), TRUE) + RegisterSignal(equipper, COMSIG_MOB_APPLY_DAMGE, .proc/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 585c98c59171..78b9d64cbd20 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_REF(handle_attackby)) - RegisterSignal(parent, COMSIG_FISHING_ROD_CAST, PROC_REF(handle_cast)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/handle_attackby) + RegisterSignal(parent, COMSIG_FISHING_ROD_CAST, .proc/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_REF(fishing_completed)) + RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_COMPLETED, .proc/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 2e5533023ac8..95099164eec2 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_REF(play_humanstep)) + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/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_REF(play_simplestep)) //Note that this doesn't get called for humans. + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/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 3c006073304c..cac8fb8eb42b 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_REF(clean_act)) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_act) /datum/component/forensics/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_COMPONENT_CLEAN_ACT)) @@ -190,6 +190,4 @@ return if(!length(blood_DNA)) return - 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)) + parent.AddElement(/datum/element/decal/blood, _color = get_blood_dna_color(blood_DNA)) diff --git a/code/datums/components/fullauto.dm b/code/datums/components/fullauto.dm index 177093a49fef..bc55b9b76fc9 100644 --- a/code/datums/components/fullauto.dm +++ b/code/datums/components/fullauto.dm @@ -10,7 +10,6 @@ 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) @@ -19,9 +18,7 @@ if(!isgun(parent)) return COMPONENT_INCOMPATIBLE var/obj/item/gun = parent - 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)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/wake_up) if(_autofire_shot_delay) autofire_shot_delay = _autofire_shot_delay if(autofire_stat == AUTOFIRE_STAT_IDLE && ismob(gun.loc)) @@ -64,13 +61,13 @@ if(!QDELETED(usercli)) clicker = usercli shooter = clicker.mob - RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDOWN, PROC_REF(on_mouse_down)) + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDOWN, .proc/on_mouse_down) if(!QDELETED(shooter)) - RegisterSignal(shooter, COMSIG_MOB_LOGOUT, PROC_REF(autofire_off)) + RegisterSignal(shooter, COMSIG_MOB_LOGOUT, .proc/autofire_off) UnregisterSignal(shooter, COMSIG_MOB_LOGIN) - 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)) + 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) /datum/component/automatic_fire/proc/autofire_off(datum/source) SIGNAL_HANDLER @@ -86,7 +83,7 @@ mouse_status = AUTOFIRE_MOUSEUP //In regards to the component there's no click anymore to care about. clicker = null if(!QDELETED(shooter)) - RegisterSignal(shooter, COMSIG_MOB_LOGIN, PROC_REF(on_client_login)) + RegisterSignal(shooter, COMSIG_MOB_LOGIN, .proc/on_client_login) UnregisterSignal(shooter, COMSIG_MOB_LOGOUT) UnregisterSignal(parent, list(COMSIG_PARENT_QDELETING, COMSIG_ITEM_DROPPED)) shooter = null @@ -104,8 +101,6 @@ 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)) @@ -141,7 +136,7 @@ target = _target target_loc = get_turf(target) mouse_parameters = params - INVOKE_ASYNC(src, PROC_REF(start_autofiring)) + INVOKE_ASYNC(src, .proc/start_autofiring) //Dakka-dakka @@ -154,10 +149,10 @@ clicker.mouse_pointer_icon = clicker.mouse_override_icon if(mouse_status == AUTOFIRE_MOUSEUP) //See mouse_status definition for the reason for this. - RegisterSignal(clicker, COMSIG_CLIENT_MOUSEUP, PROC_REF(on_mouse_up)) + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEUP, .proc/on_mouse_up) mouse_status = AUTOFIRE_MOUSEDOWN - RegisterSignal(shooter, COMSIG_MOB_SWAP_HANDS, PROC_REF(stop_autofiring)) + RegisterSignal(shooter, COMSIG_MOB_SWAP_HANDS, .proc/stop_autofiring) if(isgun(parent)) var/obj/item/gun/shoota = parent @@ -171,7 +166,7 @@ return //If it fails, such as when the gun is empty, then there's no need to schedule a second shot. START_PROCESSING(SSprojectiles, src) - RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDRAG, PROC_REF(on_mouse_drag)) + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDRAG, .proc/on_mouse_drag) /datum/component/automatic_fire/proc/on_mouse_up(datum/source, atom/object, turf/location, control, params) @@ -248,8 +243,9 @@ if(!can_shoot()) shoot_with_empty_chamber(shooter) return FALSE - if(weapon_weight == WEAPON_HEAVY && (!wielded)) - to_chat(shooter, "You need a more secure grip to fire [src]!") + 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]!") return FALSE return TRUE @@ -264,13 +260,10 @@ 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_REF(do_autofire_shot), source, target, shooter, params) + INVOKE_ASYNC(src, .proc/do_autofire_shot, source, target, shooter, params) return COMPONENT_AUTOFIRE_SHOT_SUCCESS //All is well, we can continue shooting. @@ -280,14 +273,8 @@ 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, TYPE_PROC_REF(/obj/item/gun, process_fire), target, shooter, TRUE, params, null, bonus_spread), 1) + addtimer(CALLBACK(akimbo_gun, /obj/item/gun.proc/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 5fc6eb9d88ed..97d1962fe1bc 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_REF(interact)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) if(!emp_proof) - 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)) + 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) ///Called on COMSIG_ITEM_ATTACK_SELF /datum/component/gps/item/proc/interact(datum/source, mob/user) SIGNAL_HANDLER if(user) - INVOKE_ASYNC(src, PROC_REF(ui_interact), user) + INVOKE_ASYNC(src, .proc/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_REF(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/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 2865865c98ab..19dc09464134 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -25,9 +25,9 @@ var/mob/living/shooter = parent target = targ weapon = wep - RegisterSignal(targ, list(COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_ITEM_ATTACK, COMSIG_MOVABLE_MOVED, COMSIG_MOB_FIRED_GUN), PROC_REF(trigger_reaction)) + RegisterSignal(targ, list(COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_ITEM_ATTACK, COMSIG_MOVABLE_MOVED, COMSIG_MOB_FIRED_GUN), .proc/trigger_reaction) - RegisterSignal(weapon, list(COMSIG_ITEM_DROPPED, COMSIG_ITEM_EQUIPPED), PROC_REF(cancel)) + RegisterSignal(weapon, list(COMSIG_ITEM_DROPPED, COMSIG_ITEM_EQUIPPED), .proc/cancel) shooter.visible_message("[shooter] aims [weapon] point blank at [target]!", \ "You aim [weapon] point blank at [target]!", target) @@ -44,7 +44,7 @@ target.playsound_local(target.loc, 'sound/machines/chime.ogg', 50, TRUE) SEND_SIGNAL(target, COMSIG_ADD_MOOD_EVENT, "gunpoint", /datum/mood_event/gunpoint) - addtimer(CALLBACK(src, PROC_REF(update_stage), 2), GUNPOINT_DELAY_STAGE_2) + addtimer(CALLBACK(src, .proc/update_stage, 2), GUNPOINT_DELAY_STAGE_2) /datum/component/gunpoint/Destroy(force, silent) var/mob/living/shooter = parent @@ -53,10 +53,10 @@ return ..() /datum/component/gunpoint/RegisterWithParent() - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_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)) + 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) /datum/component/gunpoint/UnregisterFromParent() UnregisterSignal(parent, COMSIG_MOVABLE_MOVED) @@ -91,7 +91,7 @@ to_chat(parent, "You steady [weapon] on [target].") to_chat(target, "[parent] has steadied [weapon] on you!") damage_mult = GUNPOINT_MULT_STAGE_2 - addtimer(CALLBACK(src, PROC_REF(update_stage), 3), GUNPOINT_DELAY_STAGE_3) + addtimer(CALLBACK(src, .proc/update_stage, 3), GUNPOINT_DELAY_STAGE_3) else if(stage == 3) to_chat(parent, "You have fully steadied [weapon] on [target].") to_chat(target, "[parent] has fully steadied [weapon] on you!") @@ -105,7 +105,7 @@ /datum/component/gunpoint/proc/trigger_reaction() SIGNAL_HANDLER - INVOKE_ASYNC(src, PROC_REF(async_trigger_reaction)) + INVOKE_ASYNC(src, .proc/async_trigger_reaction) /datum/component/gunpoint/proc/async_trigger_reaction() diff --git a/code/datums/components/heirloom.dm b/code/datums/components/heirloom.dm index fc9983934ca6..d1a9bc753ef9 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_REF(examine)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/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 ee457b4d967e..73b5e3335aad 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_REF(interact)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/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_REF(reset_spamflag)), 2 SECONDS) + addtimer(CALLBACK(src, .proc/reset_spamflag), 2 SECONDS) diff --git a/code/datums/components/hot_ice.dm b/code/datums/components/hot_ice.dm index 6192dc3256f8..018dfe800d1d 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_REF(attackby_react)) - RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, PROC_REF(flame_react)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/attackby_react) + RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, .proc/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 270ff8b09857..152a325e92ee 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_REF(projectile_hit)) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/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 ceea1b3087a5..3e2c8aab80c6 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_REF(try_infect_crossed), + COMSIG_ATOM_ENTERED = .proc/try_infect_crossed, ) AddComponent(/datum/component/connect_loc_behalf, parent, disease_connections) - 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)) + 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) if(isitem(parent)) - 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)) + 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) if(istype(parent, /obj/item/reagent_containers/food/snacks)) - RegisterSignal(parent, COMSIG_FOOD_EATEN, PROC_REF(try_infect_eat)) + RegisterSignal(parent, COMSIG_FOOD_EATEN, .proc/try_infect_eat) else if(istype(parent, /obj/effect/decal/cleanable/blood/gibs)) - RegisterSignal(parent, COMSIG_GIBS_STREAK, PROC_REF(try_infect_streak)) + RegisterSignal(parent, COMSIG_GIBS_STREAK, .proc/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 034c37efd826..fcecf89f1d0c 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_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(on_attack)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/on_attack) /datum/component/jousting/proc/on_equip(datum/source, mob/user, slot) SIGNAL_HANDLER - RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(mob_move), TRUE) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/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_REF(reset_charge)), movement_reset_tolerance, TIMER_STOPPABLE) + current_timerid = addtimer(CALLBACK(src, .proc/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 d07b2a8028dc..1c572573ff7c 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_REF(projectile_hit)) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/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 f7809baf3d1e..770f72cfea5b 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_REF(OnEquipped)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(OnDropped)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED,.proc/OnEquipped) + RegisterSignal(parent, COMSIG_ITEM_DROPPED,.proc/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_REF(Knockoff), TRUE) + RegisterSignal(H, COMSIG_HUMAN_DISARM_HIT, .proc/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 4f3128ca6cd6..f93e2d931470 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_REF(OnAttackby)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(Examine)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackby) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/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 cccb05b39ad9..55819d4eef9a 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_REF(on_move)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/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_REF(object_enter)) - RegisterSignal(regist_tu, COMSIG_ATOM_EXITED, PROC_REF(object_leave)) - RegisterSignal(regist_tu, COMSIG_TURF_CHANGE, PROC_REF(on_turf_change)) + 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) 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_REF(on_move)), 1, TIMER_UNIQUE|TIMER_OVERRIDE) //*pain + addtimer(CALLBACK(src, .proc/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 ed847477e076..6bbb1f4b7fbe 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_REF(projectile_hit)) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/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 c9a5345db12c..af15ffe992a8 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_REF(can_target)) + can_target_callback = CALLBACK(src, .proc/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 d97e88ca8fe9..aa986672189b 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_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)) + 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) /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 bcae15536ca7..9fba5b46b83a 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_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)) + 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) /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 a1cc816fc5f0..5b43b0f78a33 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_REF(OnAttackBy)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(OnExamine)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/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 260c12f49da9..b30ce2c05b7e 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_REF(projectile_hit)) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/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_REF(do_shrapnel), firer, target) + INVOKE_ASYNC(src, .proc/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 64fc96146527..d3a4ec9c30b2 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_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_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_MOB_HUD_CREATED, PROC_REF(modify_hud)) - RegisterSignal(parent, COMSIG_JOB_RECEIVED, PROC_REF(register_job_signals)) + RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) + RegisterSignal(parent, COMSIG_JOB_RECEIVED, .proc/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_REF(add_event)) //Mood events that are only for RnD members + RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, .proc/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_REF(clear_event), null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/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_REF(clear_event), null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/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_REF(unmodify_hud)) - RegisterSignal(screen_obj, COMSIG_CLICK, PROC_REF(hud_click)) + RegisterSignal(hud, COMSIG_PARENT_QDELETING, .proc/unmodify_hud) + RegisterSignal(screen_obj, COMSIG_CLICK, .proc/hud_click) /datum/component/mood/proc/unmodify_hud(datum/source) SIGNAL_HANDLER @@ -322,7 +322,12 @@ if(HAS_TRAIT(L, TRAIT_NOHUNGER)) return FALSE //no mood events for nutrition switch(L.nutrition) - if(NUTRITION_LEVEL_WELL_FED to INFINITY) + 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) 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 93fc561bb677..e8f9befd9fee 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_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)) + 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) if(isliving(parent)) - 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)) + 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) /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 faf61f803fa2..2c2d0acf71af 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_REF(move_react))) + tracker = new(target, CALLBACK(src, .proc/move_react)) - RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(orbiter_glide_size_update)) + RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, .proc/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_REF(orbiter_move_react)) + RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, .proc/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 2a4a9daa4ba4..7aa719d38a61 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_REF(OnExamine)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackBy)) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(OnClean)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/OnExamine) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/OnClean) var/atom/movable/A = parent A.add_filter("sprite-bane", 2, list("type"="outline", "color"="#000000", "size"=1)) @@ -50,4 +50,3 @@ 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 d4b40bdb7187..4e36391d3914 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_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)) + 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) 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_REF(on_holder_qdel)) - RegisterSignal(old_parent_attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) + RegisterSignal(old_parent_attached_to, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) + RegisterSignal(old_parent_attached_to, COMSIG_MOVABLE_MOVED, .proc/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_REF(on_parent_attached_to_qdel)) - RegisterSignal(parent_attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_attached_to_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) 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_REF(on_holder_qdel)) - RegisterSignal(new_holder, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) + RegisterSignal(new_holder, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) + RegisterSignal(new_holder, COMSIG_MOVABLE_MOVED, .proc/on_holder_moved) if(directional) - RegisterSignal(new_holder, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_holder_dir_change)) + RegisterSignal(new_holder, COMSIG_ATOM_DIR_CHANGE, .proc/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_REF(on_parent_crafted)) + RegisterSignal(new_craft, COMSIG_ATOM_USED_IN_CRAFT, .proc/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 72472d41686d..a0ed2873c90a 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_REF(Repaint)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/Repaint) /datum/component/spraycan_paintable/Destroy() RemoveCurrentCoat() diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index ae90dae17c55..fc2ae4c058dc 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_REF(nullspace_parent)) + RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, .proc/nullspace_parent) if(isammocasing(parent)) - RegisterSignal(parent, COMSIG_PELLET_CLOUD_INIT, PROC_REF(create_casing_pellets)) + RegisterSignal(parent, COMSIG_PELLET_CLOUD_INIT, .proc/create_casing_pellets) else if(isgrenade(parent)) - RegisterSignal(parent, COMSIG_GRENADE_ARMED, PROC_REF(grenade_armed)) - RegisterSignal(parent, COMSIG_GRENADE_PRIME, PROC_REF(create_blast_pellets)) + RegisterSignal(parent, COMSIG_GRENADE_ARMED, .proc/grenade_armed) + RegisterSignal(parent, COMSIG_GRENADE_PRIME, .proc/create_blast_pellets) else if(islandmine(parent)) - RegisterSignal(parent, COMSIG_MINE_TRIGGERED, PROC_REF(create_blast_pellets)) + RegisterSignal(parent, COMSIG_MINE_TRIGGERED, .proc/create_blast_pellets) else if(issupplypod(parent)) - RegisterSignal(parent, COMSIG_SUPPLYPOD_LANDED, PROC_REF(create_blast_pellets)) + RegisterSignal(parent, COMSIG_SUPPLYPOD_LANDED, .proc/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_REF(pellet_hit)) - RegisterSignal(shell.BB, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), PROC_REF(pellet_range)) + 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) 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_REF(on_target_qdel), override=TRUE) + RegisterSignal(martyr, COMSIG_PARENT_QDELETING, .proc/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_REF(on_target_qdel), override=TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/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_REF(pellet_hit)) - RegisterSignal(P, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), PROC_REF(pellet_range)) + RegisterSignal(P, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/pellet_hit) + RegisterSignal(P, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), .proc/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_REF(grenade_dropped)) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(grenade_moved)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/grenade_dropped) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/grenade_moved) var/static/list/loc_connections = list( - COMSIG_ATOM_EXITED = PROC_REF(grenade_uncrossed), + COMSIG_ATOM_EXITED =.proc/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_REF(on_target_qdel), override=TRUE) + RegisterSignal(new_mob, COMSIG_PARENT_QDELETING, .proc/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 80c956a0031b..8512e46c361d 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_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 + 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 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_REF(enable)), 0) + addtimer(CALLBACK(src, .proc/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 bf81a595c2be..9cf6a6e4f16a 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_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)) + 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) /datum/component/pricetag/proc/Unwrapped() SIGNAL_HANDLER diff --git a/code/datums/components/punchcooldown.dm b/code/datums/components/punchcooldown.dm index 19aa8c8cd20d..5aacf49fd2d2 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_REF(reducecooldown) + proctype = .proc/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_REF(changewarcry)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/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_REF(changewarcry_async), user) + INVOKE_ASYNC(src, .proc/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 6ee306b28215..d06cb1e18799 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_REF(rad_probe_react)) + RegisterSignal(parent, COMSIG_ATOM_RAD_PROBE, .proc/rad_probe_react) if(contamination_proof) // Can this object be contaminated? - RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, PROC_REF(rad_contaminating)) + RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, .proc/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_REF(rad_pass)) + RegisterSignal(parent, COMSIG_ATOM_RAD_WAVE_PASSING, .proc/rad_pass) amount = _amount diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index a6c67af2d3cd..a1d0553f3b1d 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_REF(rad_examine)) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(rad_clean)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/rad_examine) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/rad_clean) if(istype(parent, /obj/item)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(rad_attack)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, PROC_REF(rad_attack)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/rad_attack) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, .proc/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_REF(glow_loop), master), rand(1,19))//Things should look uneven + addtimer(CALLBACK(src, .proc/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 de61c13ae295..4bd3d1b82e43 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_REF(OnAttackBy)) - RegisterSignal(parent, COMSIG_ATOM_MULTITOOL_ACT, PROC_REF(OnMultitool)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) + RegisterSignal(parent, COMSIG_ATOM_MULTITOOL_ACT, .proc/OnMultitool) if (allow_standalone) _MakeLocal() diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index 7d3bf028d796..3f56735a493c 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_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)) + 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) /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, TYPE_PROC_REF(/atom/movable, unbuckle_mob), M), 0, TIMER_UNIQUE) + addtimer(CALLBACK(parent, /atom/movable/.proc/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_REF(on_host_unarmed_melee)) + RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/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 506d744d6c8c..7f0e230845f8 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_REF(default_can_user_rotate)) + src.can_user_rotate = CALLBACK(src,.proc/default_can_user_rotate) if(can_be_rotated) src.can_be_rotated = can_be_rotated else - src.can_be_rotated = CALLBACK(src, PROC_REF(default_can_be_rotated)) + src.can_be_rotated = CALLBACK(src,.proc/default_can_be_rotated) if(after_rotation) src.after_rotation = after_rotation else - src.after_rotation = CALLBACK(src, PROC_REF(default_after_rotation)) + src.after_rotation = CALLBACK(src,.proc/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_REF(HandRot)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(ExamineMessage)) + RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/HandRot) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/ExamineMessage) if(rotation_flags & ROTATION_WRENCH) - RegisterSignal(parent, COMSIG_ATOM_WRENCH_ACT, PROC_REF(WrenchRot)) + RegisterSignal(parent, COMSIG_ATOM_WRENCH_ACT, .proc/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 8dfef21b749d..7a31c812749b 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_REF(EngageInComedy) + proctype = .proc/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, GLOBAL_PROC_REF(playsound), parent, pick(comedysounds), 100, FALSE, SHORT_RANGE_SOUND_EXTRARANGE), laugh_delay) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 5c2c88ccfee7..64dd511956ce 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_REF(Slip), + COMSIG_ATOM_ENTERED = .proc/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_REF(Slip_on_wearer), + COMSIG_ATOM_ENTERED = .proc/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_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) else - RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(Slip)) + RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/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_REF(holder_deleted)) + RegisterSignal(holder, COMSIG_PARENT_PREQDELETED, .proc/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 04e514062879..584f76cbc255 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_REF(free_prisoner)) + RegisterSignal(S, COMSIG_MOVABLE_MOVED, .proc/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 42456ccf88e9..0b2794898e13 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_REF(stop_spawning)) + RegisterSignal(parent, list(COMSIG_PARENT_QDELETING), .proc/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 1aa652e5106a..343cdab3f081 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_REF(equip_react)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(drop_react)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip_react) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/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_REF(knockdown_react), TRUE) + RegisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN, .proc/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 9e75259536ef..9e5032ec70f7 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_REF(spectral_attack)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/spectral_attack) /datum/component/spooky/proc/spectral_attack(datum/source, mob/living/carbon/C, mob/user) SIGNAL_HANDLER - INVOKE_ASYNC(src, PROC_REF(spectral_attack_async), source, C, user) + INVOKE_ASYNC(src, .proc/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/android)) && (!istype(H.dna.species, /datum/species/jelly))) + 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))) 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/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/golem)) && (!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 368b70b64c0c..fdb95e249f2b 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_REF(play_squeak_crossed), + COMSIG_ATOM_ENTERED = .proc/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_REF(play_squeak)) + RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), .proc/play_squeak) if(ismovable(parent)) - RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), PROC_REF(play_squeak)) + RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak) AddComponent(/datum/component/connect_loc_behalf, parent, item_connections) - RegisterSignal(parent, COMSIG_ITEM_WEARERCROSSED, PROC_REF(play_squeak_crossed)) - RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, PROC_REF(disposing_react)) + RegisterSignal(parent, COMSIG_ITEM_WEARERCROSSED, .proc/play_squeak_crossed) + RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react) if(isitem(parent)) - RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), PROC_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)) + 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) if(istype(parent, /obj/item/clothing/shoes)) - RegisterSignal(parent, COMSIG_SHOES_STEP_ACTION, PROC_REF(step_squeak)) + RegisterSignal(parent, COMSIG_SHOES_STEP_ACTION, .proc/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_REF(disposing_react), TRUE) + RegisterSignal(equipper, COMSIG_MOVABLE_DISPOSING, .proc/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_REF(holder_dir_change)) + RegisterSignal(holder, COMSIG_ATOM_DIR_CHANGE, .proc/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 2f01af2ee6e7..98f12cdc09c1 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_REF(punish)) + RegisterSignal(L, list(COMSIG_MOVABLE_Z_CHANGED), .proc/punish) murder = _murder message = _message diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index c0a9bd162209..4198ba5b974d 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_REF(on_contents_del)) - RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, PROC_REF(on_deconstruct)) + RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, .proc/on_contents_del) + RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, .proc/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 9c534ae2fa4d..7b734d8836cc 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_REF(recursive_insertion), W, user) + INVOKE_ASYNC(src, .proc/recursive_insertion, W, user) return . = ..() diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index ced0b0e79ff7..6a5d39a3f2c3 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_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)) + 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) update_actions() @@ -145,7 +145,7 @@ return var/obj/item/I = parent modeswitch_action = new(I) - RegisterSignal(modeswitch_action, COMSIG_ACTION_TRIGGER, PROC_REF(action_trigger)) + RegisterSignal(modeswitch_action, COMSIG_ACTION_TRIGGER, .proc/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_REF(quick_empty), M) + INVOKE_ASYNC(src, .proc/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_REF(async_preattack_intercept), I, M) + INVOKE_ASYNC(src, .proc/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_REF(handle_mass_pickup), things, I.loc, rejections, progress))) + while(do_after(M, 10, TRUE, parent, FALSE, CALLBACK(src, .proc/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_REF(mass_remove_from_storage), T, things, progress))) + while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/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_REF(mob_deleted)) + RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/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_REF(dump_content_at), over_object, M) + INVOKE_ASYNC(src, .proc/dump_content_at, over_object, M) return if(A.loc != M) return @@ -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, TYPE_PROC_REF(/mob, put_in_hands), A) + INVOKE_ASYNC(H, /mob.proc/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, TYPE_PROC_REF(/mob, put_in_hands), A) + INVOKE_ASYNC(H, /mob.proc/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_REF(on_alt_click_async), source, user) + INVOKE_ASYNC(src, .proc/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()) diff --git a/code/datums/components/summoning.dm b/code/datums/components/summoning.dm index bd335cbcbaad..9109e26b3003 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_REF(projectile_hit)) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/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_REF(on_spawned_death)) // so we can remove them from the list, etc (for mobs with corpses) + RegisterSignal(L, COMSIG_MOB_DEATH, .proc/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 1fa269b56f6f..e45c792f433e 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_REF(leave_swarm), \ - COMSIG_ATOM_ENTERED = PROC_REF(join_swarm) \ + COMSIG_ATOM_EXITED =.proc/leave_swarm, \ + COMSIG_ATOM_ENTERED = .proc/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 68c74921b8b7..9edf16e0b634 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_REF(resetTackle)), base_knockdown, TIMER_STOPPABLE) + addtimer(CALLBACK(src, .proc/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_REF(checkTackle)) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(sack)) - RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, PROC_REF(registerTackle)) + RegisterSignal(parent, COMSIG_MOB_CLICKON, .proc/checkTackle) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/sack) + RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, .proc/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_REF(checkObstacle)) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/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_REF(resetTackle)), base_knockdown, TIMER_STOPPABLE) + addtimer(CALLBACK(src, .proc/resetTackle), base_knockdown, TIMER_STOPPABLE) return(COMSIG_MOB_CANCEL_CLICKON) /** @@ -153,7 +153,7 @@ if(!iscarbon(hit)) if(hit.density) - INVOKE_ASYNC(src, PROC_REF(splat), user, hit) + INVOKE_ASYNC(src, .proc/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, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(T, /mob/living/carbon/proc/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,30 +208,26 @@ 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, TYPE_PROC_REF(/datum/species, grab), S, T) - if(S.pulling == T) - S.setGrabState(GRAB_PASSIVE) + INVOKE_ASYNC(S.dna.species, /datum/species.proc/grab, S, 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, TYPE_PROC_REF(/datum/species, grab), S, T) - if(S.pulling == T) - S.setGrabState(GRAB_AGGRESSIVE) + INVOKE_ASYNC(S.dna.species, /datum/species.proc/grab, S, T) + S.setGrabState(GRAB_AGGRESSIVE) return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH @@ -259,6 +255,8 @@ 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 f673abcf7bb0..d1941f8a72fd 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_REF(modify)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(unmodify)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/modify) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/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 fc18ec5fd876..32d5120c72e0 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_REF(tape_rip)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine_tape)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/tape_rip) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/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 c6d9ac02947c..a458db2f2571 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_REF(checkTether)) + RegisterSignal(parent, list(COMSIG_MOVABLE_PRE_MOVE), .proc/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 ac9e468b10ae..23f020adb7f0 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_REF(clean_react)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(attackby_react)) - RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, PROC_REF(flame_react)) + 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) /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_REF(burn_parent), fakefire, user), min(amount * 0.35 SECONDS, 20 SECONDS)) + addtimer(CALLBACK(src, .proc/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 51c9268d13ab..88cc0d190014 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_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)) + 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) // 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_REF(on_swap_hands)) + RegisterSignal(user, COMSIG_MOB_SWAP_HANDS, .proc/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_REF(on_drop)) + RegisterSignal(offhand_item, COMSIG_ITEM_DROPPED, .proc/on_drop) user.put_in_inactive_hand(offhand_item) /** diff --git a/code/datums/components/udder.dm b/code/datums/components/udder.dm index 3b47efa3fcd0..f954559d9df2 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_REF(on_examine)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/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_REF(on_mob_attacking)) + RegisterSignal(udder_mob, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/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 31a9e851a0a1..8b3e6eb16868 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_REF(OnAttackBy)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(interact)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) if(istype(parent, /obj/item/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)) + 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) else if(istype(parent, /obj/item/pda)) - RegisterSignal(parent, COMSIG_PDA_CHANGE_RINGTONE, PROC_REF(new_ringtone)) - RegisterSignal(parent, COMSIG_PDA_CHECK_DETONATE, PROC_REF(check_detonate)) + RegisterSignal(parent, COMSIG_PDA_CHANGE_RINGTONE, .proc/new_ringtone) + RegisterSignal(parent, COMSIG_PDA_CHECK_DETONATE, .proc/check_detonate) else if(istype(parent, /obj/item/radio)) - RegisterSignal(parent, COMSIG_RADIO_NEW_FREQUENCY, PROC_REF(new_frequency)) + RegisterSignal(parent, COMSIG_RADIO_NEW_FREQUENCY, .proc/new_frequency) else if(istype(parent, /obj/item/pen)) - RegisterSignal(parent, COMSIG_PEN_ROTATED, PROC_REF(pen_rotation)) + RegisterSignal(parent, COMSIG_PEN_ROTATED, .proc/pen_rotation) uplink_items = get_uplink_items(_gamemode, TRUE, allow_restricted) @@ -120,7 +120,7 @@ return active = TRUE if(user) - INVOKE_ASYNC(src, PROC_REF(ui_interact), user) + INVOKE_ASYNC(src, .proc/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 0d94e33c3d76..cbfec78d11f2 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_REF(pass) + var/proctype = .proc/pass var/mobtype = /mob/living /datum/component/wearertargeting/Initialize() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/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 deleted file mode 100644 index 3821f9a1b559..000000000000 --- a/code/datums/components/weatherannouncer.dm +++ /dev/null @@ -1,170 +0,0 @@ -#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 f2c2b0b303ee..9f723b9c07f6 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_REF(gc), TRUE), 1) //GC after initialization. + addtimer(CALLBACK(src, .proc/gc, TRUE), 1) //GC after initialization. last_process = world.time /datum/component/wet_floor/RegisterWithParent() - RegisterSignal(parent, COMSIG_TURF_IS_WET, PROC_REF(is_wet)) - RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, PROC_REF(dry)) + RegisterSignal(parent, COMSIG_TURF_IS_WET, .proc/is_wet) + RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, .proc/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_REF(AfterSlip))) + parent.LoadComponent(/datum/component/slippery, intensity, lube_flags, CALLBACK(src, .proc/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 5ba239c26d7a..3f519fc49155 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_REF(charge)), charge_rate) + addtimer(CALLBACK(src, .proc/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 547e66855bf6..1ee6f7d2eb55 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, 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) + addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 6) + addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 12) + addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 18) diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index c7e5b5c064ac..bdc47a32c3a0 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_REF(coma), M), 60) + addtimer(CALLBACK(src, .proc/coma, M), 60) /datum/symptom/heal/coma/proc/coma(mob/living/M) M.fakedeath("regenerative_coma", !deathgasp) - addtimer(CALLBACK(src, PROC_REF(uncoma), M), 300) + addtimer(CALLBACK(src, .proc/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 2423208cb072..d1b59edbc1c8 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_REF(Shed), H, FALSE), 50) + addtimer(CALLBACK(src, .proc/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_REF(Shed), H, TRUE), 50) + addtimer(CALLBACK(src, .proc/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 b19a4d453dd5..49a3cf8d07d5 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 + A.infectable_biotypes |= MOB_MINERAL //Mineral covers plasmamen and golems. /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 21a780b93665..56261688fc2a 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_REF(handle_speech)) + RegisterSignal(affected_mob, COMSIG_MOB_SAY, .proc/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 dde90dd5dbe8..5a1c2b3783d4 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -688,12 +688,12 @@ spawn_gibs() set_species(/datum/species/skeleton) if(prob(90)) - addtimer(CALLBACK(src, PROC_REF(death)), 30) + addtimer(CALLBACK(src, .proc/death), 30) if(mind) mind.hasSoul = FALSE if(5) to_chat(src, "LOOK UP!") - addtimer(CALLBACK(src, PROC_REF(something_horrible_mindmelt)), 30) + addtimer(CALLBACK(src, .proc/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_REF(adjustOrganLoss), ORGAN_SLOT_BRAIN, 200), 20) + addtimer(CALLBACK(src, .proc/adjustOrganLoss, ORGAN_SLOT_BRAIN, 200), 20) diff --git a/code/datums/ductnet.dm b/code/datums/ductnet.dm index 3c109564815e..14a74a67c490 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, 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) + 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) 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 e9779644c211..55abf0a85de1 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_REF(Detach), override = TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/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 c094e5a5b108..10135871a7ad 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_REF(tuck_into_bed)) + RegisterSignal(target, COMSIG_ITEM_ATTACK_OBJ, .proc/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_REF(untuck)) + RegisterSignal(tucked, COMSIG_ITEM_PICKUP, .proc/untuck) return COMPONENT_NO_AFTERATTACK diff --git a/code/datums/elements/bsa_blocker.dm b/code/datums/elements/bsa_blocker.dm index 96606a553096..5bdf4fa90912 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_REF(block_bsa)) + RegisterSignal(target, COMSIG_ATOM_BSA_BEAM, .proc/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 c43c36902af5..1f9eb15ea1c8 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_REF(Clean)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/Clean) /datum/element/cleaning/Detach(datum/target) . = ..() diff --git a/code/datums/elements/connect_loc.dm b/code/datums/elements/connect_loc.dm index a0614dd12e0d..cfadedd5980d 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_REF(on_moved), override = TRUE) + RegisterSignal(listener, COMSIG_MOVABLE_MOVED, .proc/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 96c5d6a5fab3..17ba311bc5a3 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_REF(apply_overlay), TRUE) + RegisterSignal(target,COMSIG_ATOM_UPDATE_OVERLAYS,.proc/apply_overlay, TRUE) if(isturf(target)) - RegisterSignal(target,COMSIG_TURF_AFTER_SHUTTLE_MOVE, PROC_REF(shuttlemove_react), TRUE) + RegisterSignal(target,COMSIG_TURF_AFTER_SHUTTLE_MOVE,.proc/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_REF(late_update_icon), TRUE) + RegisterSignal(target,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE,.proc/late_update_icon, TRUE) if(isitem(target)) - INVOKE_ASYNC(target, TYPE_PROC_REF(/obj/item, update_slot_icon), TRUE) + INVOKE_ASYNC(target, /obj/item/.proc/update_slot_icon, TRUE) if(_dir) - RegisterSignal(target, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate_react),TRUE) + RegisterSignal(target, COMSIG_ATOM_DIR_CHANGE, .proc/rotate_react,TRUE) if(_cleanable) - RegisterSignal(target, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_react),TRUE) + RegisterSignal(target, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react,TRUE) if(_description) - RegisterSignal(target, COMSIG_PARENT_EXAMINE, PROC_REF(examine),TRUE) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/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, TYPE_PROC_REF(/obj/item, update_slot_icon)) + INVOKE_ASYNC(source, /obj/item/.proc/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 85f75bef2416..d5f30c4d0c57 100644 --- a/code/datums/elements/decals/blood.dm +++ b/code/datums/elements/decals/blood.dm @@ -5,22 +5,34 @@ return ELEMENT_INCOMPATIBLE . = ..() - RegisterSignal(target, COMSIG_ATOM_GET_EXAMINE_NAME, PROC_REF(get_examine_name), TRUE) + RegisterSignal(target, COMSIG_ATOM_GET_EXAMINE_NAME, .proc/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) - if(!_icon || !_icon_state) - return FALSE + var/obj/item/I = source + if(!_icon) + _icon = 'icons/effects/blood.dmi' + if(!_icon_state) + _icon_state = "itemblood" if(!_color) _color = COLOR_BLOOD - 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 + 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 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 de0520b5bbab..8c9b5e88a5a9 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_REF(on_examine)) - RegisterSignal(target, COMSIG_LIVING_CAN_TRACK, PROC_REF(can_track)) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(target, COMSIG_LIVING_CAN_TRACK, .proc/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 1eaee1d8cbbc..8ba38a515dad 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_REF(get_dunked)) + RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, .proc/get_dunked) /datum/element/dunkable/Detach(datum/target) . = ..() diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm index 8fc916c99c14..d62a6fb9101a 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_REF(equippedChanged)) + RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), .proc/equippedChanged) /datum/element/earhealing/Detach(datum/target) . = ..() diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index 9b427b6b80c5..40b7d38d65a4 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_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)) + 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) 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_REF(checkEmbedProjectile)) + RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/checkEmbedProjectile) /datum/element/embed/Detach(obj/target) diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm index 9646579a83ca..de829098637a 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_REF(impact), override = TRUE) + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/impact, override = TRUE) if(isitem(target)) - RegisterSignal(target, COMSIG_ITEM_ATTACK, PROC_REF(item_attack), override = TRUE) - RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, PROC_REF(item_attack_self), override = TRUE) + RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/item_attack, override = TRUE) + RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, .proc/item_attack_self, override = TRUE) /datum/element/firestacker/Detach(datum/source, force) . = ..() diff --git a/code/datums/elements/forced_gravity.dm b/code/datums/elements/forced_gravity.dm index b7bccea7ff02..c567ff7b0961 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_REF(gravity_check)) + RegisterSignal(target, COMSIG_ATOM_HAS_GRAVITY, .proc/gravity_check) if(isturf(target)) - RegisterSignal(target, COMSIG_TURF_HAS_GRAVITY, PROC_REF(turf_gravity_check)) + RegisterSignal(target, COMSIG_TURF_HAS_GRAVITY, .proc/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 f8c4cfa80134..603cd56e22fb 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_REF(create_fishing_spot)) + RegisterSignal(target, COMSIG_PRE_FISHING, .proc/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 2c73a082625a..69b6beffe6a1 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_REF(on_target_move)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/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 4d8cc6eb2877..41b94755389f 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_REF(on_mob_login)) + RegisterSignal(target, COMSIG_MOB_LOGIN, .proc/on_mob_login) /datum/element/appearance_on_login/proc/on_mob_login(mob/source) SIGNAL_HANDLER - INVOKE_ASYNC(src, PROC_REF(mob_appearance), source) + INVOKE_ASYNC(src, .proc/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_REF(check_menu), target), radius = 38, require_near = TRUE) + var/picked_icon = show_radial_menu(target, target, icon_list, custom_check = CALLBACK(src, .proc/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 909f55adc3e9..bbc1fb99a7c2 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_REF(on_mob_login)) + RegisterSignal(target, COMSIG_MOB_LOGIN, .proc/on_mob_login) /datum/element/rename_on_login/proc/on_mob_login(mob/source) SIGNAL_HANDLER - INVOKE_ASYNC(src, PROC_REF(rename_mob), source) + INVOKE_ASYNC(src, .proc/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 fe53db1d4207..c99f8ab4cc26 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_REF(Item_SelfKnockback)) + RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, .proc/Item_SelfKnockback) else if(isprojectile(target)) - RegisterSignal(target, COMSIG_PROJECTILE_FIRE, PROC_REF(Projectile_SelfKnockback)) + RegisterSignal(target, COMSIG_PROJECTILE_FIRE, .proc/Projectile_SelfKnockback) else return ELEMENT_INCOMPATIBLE diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm index 49b3e5ccf0e8..2bca125f4c25 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_REF(snail_crawl) + P = .proc/snail_crawl else - P = PROC_REF(lubricate) + P = .proc/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 5a6c226b3142..3439d590669f 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_REF(Detach), C, was_lying, reverse), duration) + addtimer(CALLBACK(src, .proc/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 53b94159e9b8..cf03bdb502e5 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_REF(prob_flash)) - RegisterSignal(target, COMSIG_TOOL_START_USE, PROC_REF(flash)) + RegisterSignal(target, COMSIG_TOOL_IN_USE, .proc/prob_flash) + RegisterSignal(target, COMSIG_TOOL_START_USE, .proc/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 715c6ab4ecbd..8a2ebca136cf 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_REF(on_multiz_turf_del), TRUE) - RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, PROC_REF(on_multiz_turf_new), TRUE) + RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, .proc/on_multiz_turf_del, TRUE) + RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, .proc/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 65301e8bdc0d..3957f4632559 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_REF(hide)) + RegisterSignal(target, COMSIG_OBJ_HIDE, .proc/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 674b314ec9c1..5c84ed9886aa 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_REF(block_update_icon)) + RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON, .proc/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 0ec9a472e64f..7d1cb8d287d1 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_REF(update_onmob)) + RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, .proc/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 059546116461..04a44d85f267 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_REF(LivingWaddle)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/LivingWaddle) else - RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(Waddle)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/Waddle) /datum/element/waddling/Detach(datum/source, force) . = ..() diff --git a/code/datums/ert.dm b/code/datums/ert.dm index 0c0eb282e484..8bb5f0e6e35a 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -1,29 +1,15 @@ /datum/ert var/mobtype = /mob/living/carbon/human var/team = /datum/team/ert - var/opendoors = FALSE + var/opendoors = TRUE var/leader_role = /datum/antagonist/ert/commander - var/enforce_human = FALSE + var/enforce_human = TRUE 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) @@ -60,16 +46,20 @@ code = "Green" teamsize = 1 opendoors = FALSE - leader_role = /datum/antagonist/ert/official - roles = list(/datum/antagonist/ert/official) + leader_role = /datum/antagonist/official + roles = list(/datum/antagonist/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()]'s vessels." + 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" /datum/ert/janitor roles = list(/datum/antagonist/ert/janitor, /datum/antagonist/ert/janitor/heavy) @@ -85,170 +75,6 @@ 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 6fd41b9df929..445d795d0024 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_REF(build_record)) + INVOKE_ASYNC(src, .proc/build_record) /obj/item/disk/holodisk/Destroy() QDEL_NULL(record) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 24865387794a..abc82ea6806e 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_REF(show_hud_images_after_cooldown), M), next_time_allowed[M] - world.time) + addtimer(CALLBACK(src, .proc/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 568a56e368df..29e53039fa86 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 e4ce3478e73a..41b698059bb4 100644 --- a/code/datums/keybinding/human.dm +++ b/code/datums/keybinding/human.dm @@ -20,22 +20,6 @@ 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 bb7a33846a34..c1fb10f75436 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_REF(sound_loop), world.time), mid_length, TIMER_CLIENT_TIME | TIMER_STOPPABLE | TIMER_LOOP, SSsound_loops) + timerid = addtimer(CALLBACK(src, .proc/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_REF(sound_loop)), start_wait, TIMER_CLIENT_TIME, SSsound_loops) + addtimer(CALLBACK(src, .proc/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 320bb4022222..f07a9f8bd47a 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, GLOBAL_PROC_REF(playsound), A.loc, 'sound/weapons/punch1.ogg', 15, TRUE, -1)) + dance_rotate(A, CALLBACK(GLOBAL_PROC, .proc/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_REF(Apotheosis_end), A), 6 SECONDS) + addtimer(CALLBACK(src,.proc/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 72d26cf74367..01c7e93ba516 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) /obj/item/staff/bostaff/ComponentInitialize() . = ..() diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index e9d71398bda3..b002de0abc61 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, TYPE_PROC_REF(/mob/living/carbon/human, Paralyze), 20)) + D.throw_at(T, 10, 4, A, TRUE, TRUE, callback = CALLBACK(D, /mob/living/carbon/human.proc/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_REF(CheckStrikeTurf), A, T), 4) + addtimer(CALLBACK(src, .proc/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 79d3a5e68a89..6d5c597c1ef4 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, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, beauty_modifier * amount)), 0) + addtimer(CALLBACK(source, /datum.proc/_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 af7d411245e2..1ef0c1d50f60 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 + var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) 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_REF(clear_current)) + RegisterSignal(src, COMSIG_PARENT_QDELETING, .proc/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_REF(set_death_time)) + RegisterSignal(new_character, COMSIG_MOB_DEATH, .proc/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, TYPE_PROC_REF(/datum/antagonist, on_gain)) + INVOKE_ASYNC(A, /datum/antagonist.proc/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, TYPE_PROC_REF(/obj/effect/proc_holder/spell, start_recharge)) + INVOKE_ASYNC(S, /obj/effect/proc_holder/spell.proc/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 dbaac99c4296..c16655ae59e3 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -113,14 +113,6 @@ 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 5f873cf40ff8..e9ce07165326 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -1,4 +1,8 @@ //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 be36d62e6606..109290a8a953 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_REF(move_react)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/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_REF(move_react), TRUE) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/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 032e3ab8cc8d..22cc860b2cb6 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_REF(remove)), timer) + addtimer(CALLBACK(src, .proc/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_REF(modify), 5)) //gonna want children calling ..() to run first + addtimer(CALLBACK(src, .proc/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 f2ffe7c25fd2..29abd2f0d10c 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_REF(checkembedded)), 5 SECONDS) + addtimer(CALLBACK(src, .proc/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 4b885412165a..08e8d59b0502 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_REF(jitter_less)), 90) + addtimer(CALLBACK(src, .proc/jitter_less), 90) /datum/mutation/human/epilepsy/proc/jitter_less() if(owner) @@ -395,7 +395,7 @@ . = ..() if(.) return - RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move) /datum/mutation/human/extrastun/on_losing() . = ..() @@ -426,7 +426,7 @@ . = ..() if(.) return TRUE - RegisterSignal(owner, COMSIG_MOB_STATCHANGE, PROC_REF(bloody_shower)) + RegisterSignal(owner, COMSIG_MOB_STATCHANGE, .proc/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_REF(abortattachment)) + RegisterSignal(owner, COMSIG_LIVING_ATTACH_LIMB, .proc/abortattachment) /datum/mutation/human/headless/on_losing() . = ..() diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm index 37da2f30b232..ab609b54cf2a 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_REF(on_move)) - RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move) + RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/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 707327f658be..4526682c5eaa 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_REF(on_attack_hand)) - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/on_attack_hand) + RegisterSignal(owner, COMSIG_MOB_SAY, .proc/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_REF(scream_attack), source) + INVOKE_ASYNC(src, .proc/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 8fe2893f4de4..d9b8cb18e13e 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_REF(on_ranged_attack)) + RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, .proc/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, TYPE_PROC_REF(/obj/projectile, fire)) + INVOKE_ASYNC(LE, /obj/projectile.proc/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 5545c4efde53..17014b91530f 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_REF(handle_speech)) + RegisterSignal(owner, COMSIG_MOB_SAY, .proc/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_REF(handle_speech)) + RegisterSignal(owner, COMSIG_MOB_SAY, .proc/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_REF(handle_speech)) + RegisterSignal(owner, COMSIG_MOB_SAY, .proc/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_REF(handle_speech)) + RegisterSignal(owner, COMSIG_MOB_SAY, .proc/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 0ba690c8c0c9..beee7f3537ef 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_REF(on_ranged_attack)) + RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, .proc/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, TYPE_PROC_REF(/atom, attack_tk), owner) + INVOKE_ASYNC(target, /atom.proc/attack_tk, owner) diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index 5ffa3778edc6..67051686b7d2 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_REF(on_user_delete)) - RegisterSignal(user, COMSIG_MOB_LOGOUT, PROC_REF(clean_user_client)) - RegisterSignal(user, COMSIG_MOB_LOGIN, PROC_REF(on_user_login)) + 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) /datum/progressbar/Destroy() diff --git a/code/datums/proximity_monitor/fields/timestop.dm b/code/datums/proximity_monitor/fields/timestop.dm index 40a8c1cc947b..06ed1f113311 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_REF(timestop)) + INVOKE_ASYNC(src, .proc/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_REF(unfreeze_atom)) - RegisterSignal(A, COMSIG_ITEM_PICKUP, PROC_REF(unfreeze_atom)) + RegisterSignal(A, COMSIG_MOVABLE_PRE_MOVE, .proc/unfreeze_atom) + RegisterSignal(A, COMSIG_ITEM_PICKUP, .proc/unfreeze_atom) return TRUE diff --git a/code/datums/proximity_monitor/proximity_monitor.dm b/code/datums/proximity_monitor/proximity_monitor.dm index 7ab65204b751..6bc78a39c835 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_REF(on_entered), - COMSIG_ATOM_EXITED = PROC_REF(on_uncrossed), + COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_EXITED =.proc/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_REF(on_host_or_receiver_del)) + RegisterSignal(new_receiver, COMSIG_PARENT_QDELETING, .proc/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_REF(on_host_or_receiver_del)) - var/static/list/containers_connections = list(COMSIG_MOVABLE_MOVED = PROC_REF(on_moved)) + RegisterSignal(new_host, COMSIG_PARENT_QDELETING, .proc/on_host_or_receiver_del) + var/static/list/containers_connections = list(COMSIG_MOVABLE_MOVED = .proc/on_moved) AddComponent(/datum/component/connect_containers, host, containers_connections) - RegisterSignal(host, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(host, COMSIG_MOVABLE_MOVED, .proc/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 edc2b0c2192e..98827a2a2df6 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_REF(charge)), charge_rate) + addtimer(CALLBACK(src, .proc/charge), charge_rate) diff --git a/code/datums/ruins/beachplanet.dm b/code/datums/ruins/beachplanet.dm index dae334aefae1..f67112e4c52f 100644 --- a/code/datums/ruins/beachplanet.dm +++ b/code/datums/ruins/beachplanet.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! +// Hey! Listen! Update \config\beachruinblacklist.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 cc11481b6690..afd841ff802e 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! +// Hey! Listen! Update \config\iceruinblacklist.txt with your new ruins! /datum/map_template/ruin/icemoon prefix = "_maps/RandomRuins/IceRuins/" @@ -77,9 +77,3 @@ 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 1f58dc96da67..b6147faac1cd 100644 --- a/code/datums/ruins/jungle.dm +++ b/code/datums/ruins/jungle.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! +// Hey! Listen! Update \config\jungleruinblacklist.txt with your new ruins! /datum/map_template/ruin/jungle prefix = "_maps/RandomRuins/JungleRuins/" @@ -66,6 +66,12 @@ 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 0c46f33ccacb..13d884187ad9 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! +// Hey! Listen! Update \config\lavaruinblacklist.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 b3d9276b827e..5d8e74000564 100644 --- a/code/datums/ruins/rockplanet.dm +++ b/code/datums/ruins/rockplanet.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! +// Hey! Listen! Update \config\rockruinblacklist.txt with your new ruins! /datum/map_template/ruin/rockplanet prefix = "_maps/RandomRuins/RockRuins/" @@ -12,6 +12,12 @@ 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" @@ -77,7 +83,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" @@ -87,9 +93,3 @@ 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 598f027fd016..5aba2df7d5ce 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! +// Hey! Listen! Update \config\spaceruinblacklist.txt with your new ruins! /datum/map_template/ruin/space prefix = "_maps/RandomRuins/SpaceRuins/" @@ -25,6 +25,12 @@ 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" @@ -60,6 +66,12 @@ 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" @@ -103,6 +115,12 @@ 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" @@ -121,6 +139,12 @@ 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 80bf701526be..38c07d74cdfc 100644 --- a/code/datums/ruins/wasteplanet.dm +++ b/code/datums/ruins/wasteplanet.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! +// Hey! Listen! Update \config\wasteruinblacklist.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 2135036e3d97..062a64db559a 100644 --- a/code/datums/ruins/whitesands.dm +++ b/code/datums/ruins/whitesands.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! +// Hey! Listen! Update \config\sandruinblacklist.txt with your new ruins! /datum/map_template/ruin/whitesands prefix = "_maps/RandomRuins/SandRuins/" @@ -18,12 +18,24 @@ 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" @@ -48,12 +60,6 @@ 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" @@ -65,7 +71,6 @@ 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" @@ -73,4 +78,3 @@ 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 35e8ff81a580..c294d25dee10 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -365,3 +365,4 @@ 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 43c7bd3ab2ec..becead47da9d 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -254,7 +254,7 @@ owner.add_stun_absorption("bloody bastard sword", duration, 2, "doesn't even flinch as the sword's power courses through them!", "You shrug off the stun!", " glowing with a blazing red aura!") owner.spin(duration,1) animate(owner, color = oldcolor, time = duration, easing = EASE_IN) - addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, update_atom_colour)), duration) + addtimer(CALLBACK(owner, /atom/proc/update_atom_colour), duration) playsound(owner, 'sound/weapons/fwoosh.ogg', 75, FALSE) return ..() diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 52087f03174c..fdc1710c9ea7 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -219,6 +219,40 @@ 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 @@ -474,7 +508,7 @@ /datum/status_effect/trance/on_apply() if(!iscarbon(owner)) return FALSE - RegisterSignal(owner, COMSIG_MOVABLE_HEAR, PROC_REF(hypnotize)) + RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/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." : ""]", \ @@ -502,8 +536,8 @@ return var/mob/living/carbon/C = owner C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis - addtimer(CALLBACK(C, 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 + 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 qdel(src) /datum/status_effect/spasms diff --git a/code/datums/status_effects/gas.dm b/code/datums/status_effects/gas.dm index 11037374b9b3..c52e3c731a4d 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_REF(owner_resist)) + RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/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_REF(do_resist)) + INVOKE_ASYNC(src, .proc/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 76a33319631f..4952479fa635 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_REF(handle_hearing)) + RegisterSignal(new_owner, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) /datum/status_effect/bugged/on_remove() . = ..() @@ -210,9 +210,9 @@ qdel(src) return - 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)) + 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) /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_REF(check_taker_in_range)) + RegisterSignal(possible_candidate, COMSIG_MOVABLE_MOVED, .proc/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 55c7c6427749..434450b9bec5 100644 --- a/code/datums/tgs_event_handler.dm +++ b/code/datums/tgs_event_handler.dm @@ -23,7 +23,7 @@ to_chat(world, "Server updated, changes will be applied on the next round...") if(TGS_EVENT_WATCHDOG_DETACH) message_admins("TGS restarting...") - reattach_timer = addtimer(CALLBACK(src, PROC_REF(LateOnReattach)), 1 MINUTES) + reattach_timer = addtimer(CALLBACK(src, .proc/LateOnReattach), 1 MINUTES) if(TGS_EVENT_WATCHDOG_REATTACH) var/datum/tgs_version/old_version = world.TgsVersion() var/datum/tgs_version/new_version = args[2] diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index 47e45a42aa67..bd4f5982901d 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_REF(on_quirk_holder_first_login)) + RegisterSignal(quirk_holder, COMSIG_MOB_LOGIN, .proc/on_quirk_holder_first_login) /** diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 52ee20e23c27..c3a473ecd992 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -82,26 +82,6 @@ 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 dccd4e87877d..c8e3b582511d 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_REF(eye_contact)) - RegisterSignal(quirk_holder, COMSIG_MOB_EXAMINATE, PROC_REF(looks_at_floor)) + RegisterSignal(quirk_holder, COMSIG_MOB_EYECONTACT, .proc/eye_contact) + RegisterSignal(quirk_holder, COMSIG_MOB_EXAMINATE, .proc/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_REF(to_chat), quirk_holder, "You make eye contact with [A]."), 3) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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_REF(to_chat), quirk_holder, "[msg]"), 3) // so the examine signal has time to fire and this will print after + addtimer(CALLBACK(GLOBAL_PROC, .proc/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_REF(uncomfortable_touch)) + RegisterSignal(quirk_holder, list(COMSIG_LIVING_GET_PULLED, COMSIG_CARBON_HUGGED, COMSIG_CARBON_HEADPAT), .proc/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 b92a3d137dc9..0705a2837b6e 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_REF(equip_hat)) - RegisterSignal(H, COMSIG_CARBON_UNEQUIP_HAT, PROC_REF(unequip_hat)) + RegisterSignal(H, COMSIG_CARBON_EQUIP_HAT, .proc/equip_hat) + RegisterSignal(H, COMSIG_CARBON_UNEQUIP_HAT, .proc/unequip_hat) /datum/quirk/bald/remove() if(quirk_holder) diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index e3b6f98329f5..142bda8a9572 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_REF(start)), telegraph_duration) + addtimer(CALLBACK(src, .proc/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_REF(wind_down)), weather_duration) + addtimer(CALLBACK(src, .proc/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_REF(end)), end_duration) + addtimer(CALLBACK(src, .proc/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 e6db7790fd67..3562dc5d6dbb 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_REF(on_holder_qdel)) + RegisterSignal(holder, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) if(randomize) randomize() else diff --git a/code/datums/wires/airalarm.dm b/code/datums/wires/airalarm.dm index 8297c2ab233c..6afccd547660 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, TYPE_PROC_REF(/obj/machinery/airalarm, reset), wire), 1200) + addtimer(CALLBACK(A, /obj/machinery/airalarm.proc/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, TYPE_PROC_REF(/obj/machinery/airalarm, reset), wire), 100) + addtimer(CALLBACK(A, /obj/machinery/airalarm.proc/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 14e2d4f2ba1f..c9e969a8ebd0 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, TYPE_PROC_REF(/obj/machinery/door/airlock, open)) + INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/open) else - INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door/airlock, close)) + INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/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, TYPE_PROC_REF(/obj/machinery/door/airlock, reset_ai_wire)), 1 SECONDS) + addtimer(CALLBACK(A, /obj/machinery/door/airlock.proc/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 318eaa6e0231..a1f942dab2e9 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, TYPE_PROC_REF(/obj/machinery/advanced_airlock_controller, reset), wire), 1200) + addtimer(CALLBACK(A, /obj/machinery/advanced_airlock_controller.proc/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, TYPE_PROC_REF(/obj/machinery/advanced_airlock_controller, reset), wire), 100) + addtimer(CALLBACK(A, /obj/machinery/advanced_airlock_controller.proc/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 a6a18c6d8d1c..933b9aae0222 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, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 1200) + addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 1200) if(WIRE_IDSCAN) // Unlock for a little while. A.locked = FALSE - addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 300) + addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 300) if(WIRE_AI) // Disable AI control for a very short time. if(!A.aidisabled) A.aidisabled = TRUE - addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 10) + addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/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 8f9fbc16033a..c14c18887a82 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, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) + addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60) if(WIRE_SHOCK) A.shocked = !A.shocked - addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) + addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60) if(WIRE_DISABLE) A.disabled = !A.disabled - addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) + addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/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 618e9871c031..58c52970c8e5 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, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) + addtimer(CALLBACK(generator, /obj/machinery/autolathe.proc/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 a40e9bd426c1..738bebeda36b 100644 --- a/code/game/MapData/shuttles/srm_glaive.dm +++ b/code/game/MapData/shuttles/srm_glaive.dm @@ -91,6 +91,10 @@ ) 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 35712cb768ae..b7d13f80d70e 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 ? TYPE_PROC_REF(/obj/machinery/door/firedoor, open) : TYPE_PROC_REF(/obj/machinery/door/firedoor, close))) + INVOKE_ASYNC(D, (opening ? /obj/machinery/door/firedoor.proc/open : /obj/machinery/door/firedoor.proc/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, TYPE_PROC_REF(/mob/living/silicon, cancelAlarm),"Burglar",src,trigger), 600) + addtimer(CALLBACK(SILICON, /mob/living/silicon.proc/cancelAlarm,"Burglar",src,trigger), 600) /** * Trigger the fire alarm visual affects in an area diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index 95200f5d51b9..0d449f6035a8 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -61,8 +61,3 @@ /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 e9dc0b9fda0a..645d98fc8f58 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -60,6 +60,42 @@ 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 a869f0c53816..cabadd3f252d 100644 --- a/code/game/area/areas/ruins/rockplanet.dm +++ b/code/game/area/areas/ruins/rockplanet.dm @@ -1,17 +1,7 @@ /**********************Rock Planet Areas**************************/ -//syndicate -/area/ruin/rockplanet/syndicate +/area/mine/rockplanet name = "Abandoned Syndicate Mining Facility" - icon_state = "green" -//budgetcuts -/area/ruin/rockplanet/nanotrasen +/area/mine/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 e2fb00acdc10..5c3d509d589a 100644 --- a/code/game/area/areas/ruins/sandplanet.dm +++ b/code/game/area/areas/ruins/sandplanet.dm @@ -5,7 +5,3 @@ /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 e19e39cd0db7..769c509734bd 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -56,6 +56,19 @@ 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 @@ -353,6 +366,16 @@ 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 @@ -367,6 +390,12 @@ 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 350b80907f70..084736fb7069 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -156,10 +156,6 @@ ///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) * @@ -591,33 +587,6 @@ 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)) @@ -811,7 +780,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_REF(hitby_react), AM), 2) + addtimer(CALLBACK(src, .proc/hitby_react, AM), 2) /** * We have have actually hit the passed in atom @@ -975,7 +944,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, TYPE_PROC_REF(/datum/component/storage, handle_mass_item_insertion), things, src_object, user, progress))) + while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, /datum/component/storage.proc/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 54ac77bb0a8c..7471c3514881 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_REF(SpinAnimation), 5, 2) + INVOKE_ASYNC(src, .proc/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 fe95ea3c5988..a690a9317670 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, TYPE_PROC_REF(/atom/movable, throw_at), thrown_by, throw_range+2, throw_speed, null, TRUE), 1) + addtimer(CALLBACK(src, /atom/movable.proc/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_REF(unstick)), unstick_time) + addtimer(CALLBACK(src, .proc/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 b8dcd669d385..81cd538a7e45 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 += "[game_timestamp()]: [key_name(usr)] increased threat by [threatadd] threat." + threat_log += "[worldtime2text()]: [key_name(usr)] increased threat by [threatadd] threat." else spend_threat(-threatadd) - threat_log += "[game_timestamp()]: [key_name(usr)] decreased threat by [-threatadd] threat." + threat_log += "[worldtime2text()]: [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, TYPE_PROC_REF(/datum/game_mode/dynamic, execute_roundstart_rule), rule), rule.delay) + addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/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 += "[game_timestamp()]: Roundstart [starting_rule.name] spent [starting_rule.cost + added_threat]. [starting_rule.scaling_cost ? "Scaled up[starting_rule.scaled_times]/3 times." : ""]" + 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." : ""]" 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, TYPE_PROC_REF(/datum/game_mode/dynamic, execute_midround_latejoin_rule), rule), rule.delay) + addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/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 += "[game_timestamp()]: Forced rule [new_rule.name] spent [new_rule.cost]" + threat_log += "[worldtime2text()]: 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 += "[game_timestamp()]: [rule.ruletype] [rule.name] spent [rule.cost]" + threat_log += "[worldtime2text()]: [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 1e6a2da4d867..44e6a5310d17 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 += "[game_timestamp()]: [ruletype] [name] refunded [cost + (scaled_times * scaling_cost)]. Failed to execute." + mode.threat_log += "[worldtime2text()]: [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 8c8fe19d0a97..29333ce332d4 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 += "[game_timestamp()]: Extended ruleset set threat to 0." + mode.threat_log += "[worldtime2text()]: 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 391ad852664f..53f6f85f71b5 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_REF(send_intercept), 0), rand(waittime_l, waittime_h)) + addtimer(CALLBACK(src, .proc/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 17f6f474e5ea..da1db44bb251 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_REF(can_be_rotated))) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/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 1aaf853fc000..b46449a43748 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, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) + addtimer(CALLBACK(traitor, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) GLOB.pre_setup_antags -= traitor if(!exchange_blue) exchange_blue = -1 //Block latejoiners from getting exchange objectives diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index c81a58ad73b9..bc793eb60d82 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -95,8 +95,6 @@ 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 @@ -140,7 +138,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_REF(power_change)) + RegisterSignal(src, COMSIG_MOVABLE_Z_CHANGED, .proc/power_change) if(ispath(circuit, /obj/item/circuitboard)) circuit = new circuit if(mapload || apply_default_parts) @@ -167,7 +165,7 @@ Class Procs: /obj/machinery/LateInitialize() . = ..() power_change() - RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(power_change)) + RegisterSignal(src, COMSIG_ENTER_AREA, .proc/power_change) /obj/machinery/Destroy() GLOB.machines.Remove(src) @@ -521,7 +519,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_REF(unfasten_wrench_check), prev_anchored, user))) + if(I.use_tool(src, user, time, extra_checks = CALLBACK(src, .proc/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 0423794a560d..eb46da7f568b 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_REF(power_change)), cooldown_time) + addtimer(CALLBACK(src, .proc/power_change), cooldown_time) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index 67d1e1f4a07f..9a3f470fe99d 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -110,6 +110,10 @@ 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 5f8412ff25a3..b6fb1f27f5a1 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -49,7 +49,7 @@ ) /obj/machinery/autolathe/Initialize() - AddComponent(/datum/component/material_container,list(/datum/material/iron, /datum/material/glass, /datum/material/plastic, /datum/material/silver, /datum/material/gold, /datum/material/plasma, /datum/material/uranium, /datum/material/titanium), 0, TRUE, null, null, CALLBACK(src, PROC_REF(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/AfterMaterialInsert)) . = ..() wires = new /datum/wires/autolathe(src) @@ -251,7 +251,7 @@ use_power(power) icon_state = "autolathe_n" var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8 - addtimer(CALLBACK(src, PROC_REF(make_item), power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) + addtimer(CALLBACK(src, .proc/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 1a89a2b011cc..3e04893bf8a9 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, TYPE_PROC_REF(/atom, update_appearance)), 15) + addtimer(CALLBACK(src, /atom/.proc/update_appearance), 15) /obj/machinery/button/door name = "door button" @@ -220,6 +220,15 @@ 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" @@ -251,6 +260,9 @@ /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 c1cca432efd4..faccb82395fd 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_REF(post_emp_reset), emped, network), 90 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(cancelCameraAlarm)), 100) + addtimer(CALLBACK(src, .proc/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_REF(cancelCameraAlarm)), 100) + addtimer(CALLBACK(src, .proc/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 cdfb48edc2e9..fd876b2987f2 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_REF(do_track), target, U) + INVOKE_ASYNC(src, .proc/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 c71e94a0948a..60c41eeeb921 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_REF(horrifyingsound)) + INVOKE_ASYNC(src, .proc/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 bdbadf79a943..49b13bb0c2c9 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -21,8 +21,6 @@ ///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 1ca0c97d5223..eb43515d6e47 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_REF(restore_comp)), rand(3,5) * 9) + addtimer(CALLBACK(src, .proc/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 571d5b090da9..94b57a2d9f57 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, TYPE_PROC_REF(/atom/movable, say), "[S] winks out, just as suddenly as it appeared."), 50) + addtimer(CALLBACK(src, /atom/movable/proc/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 428d553ee068..5c4a62abe683 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_REF(add_new_arena_template), null, arena_dir + arena_file, simple_name) + INVOKE_ASYNC(src, .proc/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_REF(begin)),start_delay) + addtimer(CALLBACK(src,.proc/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, TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) + INVOKE_ASYNC(D, /obj/machinery/door/poddoor.proc/close) else - INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, open)) + INVOKE_ASYNC(D, /obj/machinery/door/poddoor.proc/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 50ed20ae619e..3275bb33f272 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_REF(BigClick)) + RegisterSignal(src, COMSIG_CLICK, .proc/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, TYPE_PROC_REF(/atom, interact), usr) + INVOKE_ASYNC(src, /atom.proc/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 0fe059653d5c..426e393e5bb8 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_REF(do_scan), usr, body_only), 2 SECONDS) + addtimer(CALLBACK(src, .proc/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 f875defd6044..589289c595db 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -44,10 +44,6 @@ 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 ffeabbdc4e0a..437a19136453 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_REF(react_to_scanner_del)) + RegisterSignal(connected_scanner, COMSIG_PARENT_QDELETING, .proc/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 17c5dc2ef39c..498342d62891 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(), sector_datestamp(), t1) + active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
[]", authenticated, rank, station_time_timestamp(), time2text(world.realtime, "MMM DD"), "504 FS", 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 f05ab6b8dea9..9eba87108291 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_REF(teleport), usr), 5) + addtimer(CALLBACK(src, .proc/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 2dc9a2c98bed..de05cce3ac77 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(), sector_datestamp(shortened = TRUE), t1) + active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
[]", src.authenticated, src.rank, station_time_timestamp(), time2text(world.realtime, "MMM DD"), "504 FS", t1) if("Delete Record (ALL)") if(active1) diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index fe1d87c2c89a..6c83c0389487 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_REF(finish_calibration)), 50 * (3 - power_station.teleporter_hub.accuracy)) //Better parts mean faster calibration + addtimer(CALLBACK(src, .proc/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 ac66aa4f6f26..985a61efe01d 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_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 + 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 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_REF(try_despawn_occupant), mob_occupant), time_till_despawn) //try again with normal delay + addtimer(CALLBACK(src, .proc/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"] = station_time_timestamp() + frozen_details["time"] = gameTimestamp() 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 20c3d66e8585..04fe3c750ca1 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_REF(hierofunk)) + INVOKE_ASYNC(src, .proc/hierofunk) sleep(selection.song_beat) if(QDELETED(src)) return diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 589393479ff5..3f62292736da 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_REF(deploy)), deploy_time) + addtimer(CALLBACK(src, .proc/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 7f61dde6ef79..7fd0f3262273 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_REF(react_to_console_del)) + RegisterSignal(linked_console, COMSIG_PARENT_QDELETING, .proc/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 6bb5a4bab561..525811b23ffc 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_REF(update_other_id)), 5) + addtimer(CALLBACK(.proc/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_REF(on_break)) + RegisterSignal(src, COMSIG_MACHINERY_BROKEN, .proc/on_break) update_appearance() var/static/list/connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), - COMSIG_ATOM_EXITED = PROC_REF(on_exited) + COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_EXITED = .proc/on_exited ) AddElement(/datum/element/connect_loc, connections) @@ -322,9 +322,9 @@ return if(density) - INVOKE_ASYNC(src, PROC_REF(open)) + INVOKE_ASYNC(src, .proc/open) else - INVOKE_ASYNC(src, PROC_REF(close)) + INVOKE_ASYNC(src, .proc/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_REF(close)), 2) + addtimer(CALLBACK(cyclelinkedairlock, .proc/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_REF(handlePowerRestore)) + INVOKE_ASYNC(src, .proc/handlePowerRestore) update_appearance() /obj/machinery/door/airlock/proc/loseBackupPower() @@ -507,7 +507,7 @@ secondsBackupPowerLost = 60 if(!spawnPowerRestoreRunning) spawnPowerRestoreRunning = TRUE - INVOKE_ASYNC(src, PROC_REF(handlePowerRestore)) + INVOKE_ASYNC(src, .proc/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_REF(weld_checks), W, user))) + if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/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_REF(weld_checks), W, user))) + if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/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_REF(open) : PROC_REF(close)), 2) + INVOKE_ASYNC(src, (density ? .proc/open : .proc/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_REF(close)), 1) + addtimer(CALLBACK(src, .proc/close), 1) return TRUE @@ -1450,7 +1450,7 @@ secondsElectrified = seconds diag_hud_set_electrified() if(secondsElectrified > MACHINE_NOT_ELECTRIFIED) - INVOKE_ASYNC(src, PROC_REF(electrified_loop)) + INVOKE_ASYNC(src, .proc/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 8e0ed982b501..92fb368bdc19 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -83,6 +83,14 @@ 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 3972998da809..3fc9a30033ce 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_REF(open)) + INVOKE_ASYNC(src, .proc/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 213b15c00ced..7013d3f68a7a 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, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, close)) + INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/close) for(var/obj/machinery/door/airlock/security/brig/airlock in targets) if(airlock.density) continue - INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock/security/brig, close)) + INVOKE_ASYNC(airlock, /obj/machinery/door/airlock/security/brig.proc/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, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, open)) + INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/open) for(var/obj/machinery/door/airlock/security/brig/airlock in targets) if(!airlock.density) continue - INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock/security/brig, open)) + INVOKE_ASYNC(airlock, /obj/machinery/door/airlock/security/brig.proc/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 8dbc880f740a..44b7c827daa1 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_REF(open)) + INVOKE_ASYNC(src, .proc/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_REF(unelectrify)), 300) + addtimer(CALLBACK(src, .proc/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_REF(close)), autoclose) + addtimer(CALLBACK(src, .proc/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_REF(autoclose)), wait, TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/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 a18550033d04..69169d167f3e 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_REF(latetoggle)) + INVOKE_ASYNC(src, .proc/latetoggle) /obj/machinery/door/firedoor/attack_hand(mob/user) . = ..() @@ -332,7 +332,7 @@ . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = PROC_REF(on_exit), + COMSIG_ATOM_EXIT = .proc/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, TYPE_PROC_REF(/atom, update_icon)), 5) + addtimer(CALLBACK(src, /atom/.proc/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, TYPE_PROC_REF(/atom/movable, start_pulling)) + INVOKE_ASYNC(M, /atom/movable/.proc/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, TYPE_PROC_REF(/atom/movable, start_pulling)) + INVOKE_ASYNC(M, /atom/movable/.proc/start_pulling) return ..() /obj/machinery/door/firedoor/heavy @@ -736,14 +736,14 @@ . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = PROC_REF(on_exit), + COMSIG_ATOM_EXIT = .proc/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_REF(can_be_rotated))) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/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 4e846c26f14a..56418d523b1d 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_REF(open)) + INVOKE_ASYNC(src, .proc/open) else - INVOKE_ASYNC(src, PROC_REF(close)) + INVOKE_ASYNC(src, .proc/close) /obj/machinery/door/poddoor/incinerator_toxmix name = "Combustion Chamber Vent" @@ -106,6 +106,13 @@ 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 fa2ddefb7279..e10f0786489c 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -24,8 +24,6 @@ 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 @@ -42,7 +40,7 @@ debris += new /obj/item/stack/cable_coil(src, cable) var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = PROC_REF(on_exit), + COMSIG_ATOM_EXIT = .proc/on_exit, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -343,11 +341,11 @@ return if(density) - INVOKE_ASYNC(src, PROC_REF(open)) + INVOKE_ASYNC(src, .proc/open) else - INVOKE_ASYNC(src, PROC_REF(close)) + INVOKE_ASYNC(src, .proc/close) if("touch") - INVOKE_ASYNC(src, PROC_REF(open_and_close)) + INVOKE_ASYNC(src, .proc/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 0b538d1ce109..8af3908ec531 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_REF(sense_explosion)) - RegisterSignal(src, COMSIG_MOVABLE_SET_ANCHORED, PROC_REF(power_change)) + RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, .proc/sense_explosion) + RegisterSignal(src, COMSIG_MOVABLE_SET_ANCHORED, .proc/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_REF(rot_message))) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE,null,null,CALLBACK(src,.proc/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 9d190b2e1369..3b1bfbd4b351 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_REF(not_busy)), 2 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(do_openDoor), A) + INVOKE_ASYNC(src, .proc/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 c0938bc2bdb9..a4de8908abfe 100644 --- a/code/game/machinery/embedded_controller/airlock_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_controller.dm @@ -230,6 +230,15 @@ 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 602b239bf020..315f2e128303 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, TYPE_PROC_REF(/datum/computer/file/embedded_program, process)), 5) + addtimer(CALLBACK(program, /datum/computer/file/embedded_program.proc/process), 5) usr.set_machine(src) - addtimer(CALLBACK(src, PROC_REF(updateDialog)), 5) + addtimer(CALLBACK(src, .proc/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 01f9b00e9785..3b2b414b0bf2 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_REF(do_clone)), 2 SECONDS) + addtimer(CALLBACK(src, .proc/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 new file mode 100644 index 000000000000..28c6d3d3ee2a --- /dev/null +++ b/code/game/machinery/fat_sucker.dm @@ -0,0 +1,217 @@ +/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 d4a59cb27c31..4bacfbbb5651 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_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 9cf4470cab5c..82ef63c3d738 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_REF(harvest)), interval) + addtimer(CALLBACK(src, .proc/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_REF(harvest)), interval) + addtimer(CALLBACK(src, .proc/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 4a31d650f9a1..98014077d4b0 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_REF(replay_entry),entry_number+1),entry[2]) + addtimer(CALLBACK(src,.proc/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 b31dd9925375..8e86447f6060 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_REF(finish_interrogation)), 450, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, .proc/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 8117ad2c251a..a610ec5d11b8 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -20,6 +20,9 @@ /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 dc5b41ee3821..16d7386273d8 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_REF(build_item), consumed_reagents_list), production_speed * production_coefficient) + addtimer(CALLBACK(src, .proc/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 4dac48d6cfd4..d6acc545da03 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_REF(refill), P, user), 20) + addtimer(CALLBACK(src, .proc/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 c53b256b04de..2711ee9ee61a 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_REF(remove_alert)),alert_delay,TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src,.proc/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 75498600b007..64b7fb47edd0 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_REF(popUp)) + INVOKE_ASYNC(src, .proc/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_REF(toggle_on), TRUE), 6 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(toggle_on), TRUE), rand(60,600)) + addtimer(CALLBACK(src, .proc/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_REF(reset_attacked)), 60) + addtimer(CALLBACK(src, .proc/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_REF(shootAt), target), 5) - addtimer(CALLBACK(src, PROC_REF(shootAt), target), 10) - addtimer(CALLBACK(src, PROC_REF(shootAt), target), 15) + addtimer(CALLBACK(src, .proc/shootAt, target), 5) + addtimer(CALLBACK(src, .proc/shootAt, target), 10) + addtimer(CALLBACK(src, .proc/shootAt, target), 15) return TRUE /obj/machinery/porta_turret/ai @@ -839,27 +839,6 @@ 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 c604b3eeccf6..3ca96ae5dcba 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -12,8 +12,6 @@ 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, @@ -49,7 +47,6 @@ charging = new_charging if (new_charging) START_PROCESSING(SSmachines, src) - finished_recharging = FALSE use_power = ACTIVE_POWER_USE using_power = TRUE update_appearance() @@ -146,10 +143,6 @@ 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 b548ecf73125..37def4d5a9da 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(eat), AM) + INVOKE_ASYNC(src, .proc/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_REF(reboot)), SAFETY_COOLDOWN) + addtimer(CALLBACK(src, .proc/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 ed3a35c1e228..3a03453a2ce3 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_REF(clear_emergency)), 5 MINUTES) + addtimer(CALLBACK(src, .proc/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 c9e1d108c1e5..8e056d198ea6 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_REF(play), user, player_card, chosen_bet_type, chosen_bet_amount, potential_payout), 4) //Animation first + addtimer(CALLBACK(src, .proc/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_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) + 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) /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_REF(drop_cash)), 3) //Recursion time + addtimer(CALLBACK(src, .proc/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_REF(launch_payload)), 40) + addtimer(CALLBACK(src, .proc/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 afc154a0c95a..1b0736a2951f 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scan_gate.dm @@ -5,6 +5,7 @@ #define SCANGATE_GUNS "Guns" #define SCANGATE_WANTED "Wanted" #define SCANGATE_SPECIES "Species" +#define SCANGATE_NUTRITION "Nutrition" #define SCANGATE_HUMAN "human" #define SCANGATE_LIZARD "lizard" @@ -13,6 +14,7 @@ #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" @@ -37,12 +39,13 @@ 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -56,7 +59,7 @@ /obj/machinery/scanner_gate/proc/on_entered(datum/source, atom/movable/AM) SIGNAL_HANDLER - INVOKE_ASYNC(src, PROC_REF(auto_scan), AM) + INVOKE_ASYNC(src, .proc/auto_scan, AM) /obj/machinery/scanner_gate/proc/auto_scan(atom/movable/AM) if(!(machine_stat & (BROKEN|NOPOWER)) && isliving(AM)) @@ -67,7 +70,7 @@ deltimer(scanline_timer) add_overlay(type) if(duration) - scanline_timer = addtimer(CALLBACK(src, PROC_REF(set_scanline), "passive"), duration, TIMER_STOPPABLE) + scanline_timer = addtimer(CALLBACK(src, .proc/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() @@ -140,6 +143,8 @@ 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) @@ -160,6 +165,13 @@ 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 @@ -195,6 +207,7 @@ 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) @@ -227,6 +240,19 @@ 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 @@ -235,6 +261,7 @@ #undef SCANGATE_GUNS #undef SCANGATE_WANTED #undef SCANGATE_SPECIES +#undef SCANGATE_NUTRITION #undef SCANGATE_HUMAN #undef SCANGATE_LIZARD @@ -243,6 +270,7 @@ #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 569bfa4b6f9e..b80cca3864ff 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_REF(CanInsertMaterials)), CALLBACK(src, PROC_REF(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/CanInsertMaterials), CALLBACK(src, .proc/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_REF(finish_processing)), 64) + addtimer(CALLBACK(src, .proc/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 bc578a856300..2d735deb1969 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_REF(can_be_rotated))) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/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 0ae88638d5b3..b05b0a2c2a18 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_REF(toggle_reel_spin), TRUE)//The reels won't spin unless we activate them + INVOKE_ASYNC(src, .proc/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_REF(toggle_reel_spin), FALSE) + INVOKE_ASYNC(src, .proc/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_REF(do_spin)), 2, TIMER_LOOP|TIMER_STOPPABLE) + var/spin_loop = addtimer(CALLBACK(src, .proc/do_spin), 2, TIMER_LOOP|TIMER_STOPPABLE) - addtimer(CALLBACK(src, PROC_REF(finish_spinning), spin_loop, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) + addtimer(CALLBACK(src, .proc/finish_spinning, spin_loop, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) //WARNING: no sanity checking for user since it's not needed and would complicate things (machine should still spin even if user is gone), be wary of this if you're changing this code. /obj/machinery/computer/slot_machine/proc/do_spin() diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index e86d4ae9f0f9..231e36282bdc 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_REF(check_interactable), user), + custom_check = CALLBACK(src, .proc/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_REF(cook)), 50) + addtimer(CALLBACK(src, .proc/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_REF(resist_open), user), 300) + addtimer(CALLBACK(src, .proc/resist_open, user), 300) else open_machine() dump_contents() diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index b3bd14af5a07..83182bedb942 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_REF(detonate)), 10) + addtimer(CALLBACK(src, .proc/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 153035a39374..66a384036c35 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 96c0af2b7787..d3bf1657273f 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_REF(UnmagConsole)), time) + addtimer(CALLBACK(src, .proc/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_REF(finish_bruteforce), usr), 100*length(linkedServer.decryptkey)) + addtimer(CALLBACK(src, .proc/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 ce44158cdcc8..1d29e99b27f4 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_REF(end_message_delay)), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 11f3d7b34f58..dec15ed3013b 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_REF(de_emp)), rand(duration - 20, duration + 20)) + addtimer(CALLBACK(src, .proc/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 da5a006de0b5..8d449ef1c98b 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_REF(unlock_new_robot), R), 50) + addtimer(CALLBACK(src, .proc/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 1d6a9e3845b8..a437c59c9352 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_REF(wash_cycle)), 200) + addtimer(CALLBACK(src, .proc/wash_cycle), 200) START_PROCESSING(SSfastprocess, src) diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index 728bacdb671d..ac8920367620 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_REF(relay)) - RegisterSignal(src, COMSIG_PROJECTILE_PREHIT, PROC_REF(prehit)) + RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, .proc/relay) + RegisterSignal(src, COMSIG_PROJECTILE_PREHIT, .proc/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_REF(activate)) + RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, .proc/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_REF(shield_icon_enable)), 3) + addtimer(CALLBACK(src, .proc/shield_icon_enable), 3) else flick("shield_drop", src) playsound(src, 'sound/mecha/mech_shield_drop.ogg', 50, FALSE) - addtimer(CALLBACK(src, PROC_REF(shield_icon_reset)), 5) + addtimer(CALLBACK(src, .proc/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 63d308f69558..c6c91e5b9a44 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_REF(set_ready_state), 1), equip_cooldown) + addtimer(CALLBACK(src, .proc/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 1b33de31b54e..2beaf9129ff6 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_REF(do_scatter), A, target) + INVOKE_ASYNC(src, .proc/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 b1f8d126705c..fe48f4ead497 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_REF(layCable))) + event = chassis.events.addEvent("onMove", CALLBACK(src, .proc/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 4a16a6f9b249..e342defadf1b 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_REF(set_ready_state), 1), equip_cooldown) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/obj/item/grenade/flashbang, prime)), det_time) + addtimer(CALLBACK(F, /obj/item/grenade/flashbang.proc/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 6814f0cc2e7f..160b6a27ab3d 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_REF(do_process_queue)) + INVOKE_ASYNC(src, .proc/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, TYPE_PROC_REF(/atom, cut_overlay), "fab-load-[M.name]"), 10) + addtimer(CALLBACK(src, /atom/proc/cut_overlay, "fab-load-[M.name]"), 10) updateUsrDialog() /obj/machinery/mecha_part_fabricator/attackby(obj/item/W, mob/user, params) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index d2c712d32ea8..fe1ca47ad4b3 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, GLOBAL_PROC_REF(flick_overlay), image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) + 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) //////////////////////////// ///// Action processing //// diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 5172619ba022..83f44f536b56 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_REF(check_step), used_atom, user) + return INVOKE_ASYNC(src, .proc/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 de051d5b355e..3aac1d0468ae 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, TYPE_PROC_REF(/obj/item/mecha_parts/mecha_tracking, recharge)), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, /obj/item/mecha_parts/mecha_tracking/proc/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 50652434c6f6..d10b2e878a61 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, TYPE_PROC_REF(/obj/mecha, restore_equipment)), 3 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, /obj/mecha/proc/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 f2028def7b45..9b7a5e65c9e5 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_REF(stationary_repair), loc), 100, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 bf11c24b0d88..ef47a3fa0fed 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, 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. + 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. 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 52a69d47cb5e..e9b6487d9480 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.dm b/code/game/objects/effects/anomalies/anomalies_gravity.dm index 1dea7049fc97..e8bdd61dd3fc 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(setup_grav_field)) + INVOKE_ASYNC(src, .proc/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 aead14f26e25..1a81cecabc79 100644 --- a/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm +++ b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm @@ -22,6 +22,15 @@ 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 205a8778d394..07107cd5a332 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -6,12 +6,6 @@ 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) @@ -19,9 +13,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/victim = user - to_chat(victim, span_userdanger("Your head aches as you stare into [src]!")) - victim.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) + 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) /obj/effect/anomaly/tvstatic/anomalyEffect() ..() @@ -35,13 +29,11 @@ COOLDOWN_START(src, pulse_cooldown, pulse_delay) - 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)) + 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) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) - playsound(src, 'sound/effects/stall.ogg', 50) + playsound(src, 'sound/effects/stall.ogg', 100) if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) if(prob(20)) var/mob/living/carbon/victim = looking @@ -57,55 +49,15 @@ /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/human/looking in range(effectrange, src)) + for(var/mob/living/carbon/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) @@ -121,11 +73,6 @@ 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 be2d89707882..2bb45924dfdd 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_REF(block_cult_teleport)) + RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, .proc/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 e8d1aca60520..60bdcb7c1546 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -60,11 +60,6 @@ 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 @@ -97,7 +92,7 @@ name = "poster - [name]" desc = "A large piece of space-resistant printed paper. [desc]" - addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, 300)), 0) + addtimer(CALLBACK(src, /datum.proc/_AddComponent, list(/datum/component/beauty, 300)), 0) /obj/structure/sign/poster/proc/randomise() var/obj/structure/sign/poster/selected @@ -963,13 +958,13 @@ icon_state = "poster-cmm_enlist" /obj/structure/sign/poster/minutemen/bard - 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." + 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." icon_state = "poster-cmm_bard" /obj/structure/sign/poster/minutemen/gold - 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." + 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." icon_state = "poster-cmm_gold" /obj/structure/sign/poster/minutemen/lunatown @@ -1020,51 +1015,6 @@ /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 a0909bb0b994..d00f3eb256a6 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) - addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, beauty)), 0) + addtimer(CALLBACK(src, /datum.proc/_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 5610e6a19efa..d1f65a592091 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_REF(AfterSlip)), 3SECONDS) + AddComponent(/datum/component/slippery, 5SECONDS, NO_SLIP_WHEN_WALKING, CALLBACK(src, .proc/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 b5c6f9fe0eec..cfbc81a631a1 100644 --- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm +++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm @@ -1092,17 +1092,3 @@ 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 04dcf807314a..d73af55ef7e9 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 //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_side" +/obj/effect/turf_decal/weather/snow + name = "snowy floor" + icon_state = "snowyfloor" -/obj/effect/turf_decal/weather/snow/surround - name = "surround" - icon_state = "snow_surround" +/obj/effect/turf_decal/weather/snow/corner + name = "snow corner piece" + icon = 'icons/turf/snow.dmi' + icon_state = "snow_corner" /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 8e2db3706ca3..1093f078966d 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_REF(generate_effect)) + INVOKE_ASYNC(src, .proc/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_REF(decrement_total_effect)), 20) + addtimer(CALLBACK(src, .proc/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 f8ed47a9b273..f12ee1e2df72 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_REF(create_smoke)), 5) + addtimer(CALLBACK(src, .proc/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 7fc59d075356..a19ab7781269 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_REF(fade_out)) + INVOKE_ASYNC(src, .proc/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_REF(remove_smoke_delay), C), 10) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/obj/effect/particle_effect/smoke, spread_smoke)), 1) + addtimer(CALLBACK(SM, /obj/effect/particle_effect/smoke.proc/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, SMOKE, fraction) + reagents.expose(AM, TOUCH, fraction) - reagents.expose(T, SMOKE, fraction) + reagents.expose(T, TOUCH, 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 e46d8d92e82a..751025e7b49c 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -8,11 +8,8 @@ CanAtmosPass = ATMOS_PASS_DENSITY var/timeleft = 300 //Set to 0 for permanent forcefields (ugh) -/obj/effect/forcefield/Initialize(mapload, new_timeleft) +/obj/effect/forcefield/Initialize() . = ..() - //used to change the time for forcewine - if(new_timeleft) - timeleft = new_timeleft if(timeleft) QDEL_IN(src, timeleft) @@ -39,10 +36,3 @@ 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 f880b95497c4..327f77545d8b 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_REF(Spread)), delay) + addtimer(CALLBACK(src, .proc/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_REF(Spread)), delay) + addtimer(CALLBACK(src, .proc/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 00dfda5879f5..63ff9b794ce4 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -344,7 +344,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) return INITIALIZE_HINT_QDEL /obj/effect/landmark/ert_spawn - name = "Emergency response team spawn" + name = "Emergencyresponseteam" icon_state = "ert_spawn" /obj/effect/landmark/ert_spawn/Initialize(mapload) @@ -352,23 +352,6 @@ 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 0ca73652857c..4af986b79cbe 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(triggermine), AM) + INVOKE_ASYNC(src, .proc/triggermine, AM) else - INVOKE_ASYNC(src, PROC_REF(triggermine), AM) + INVOKE_ASYNC(src, .proc/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_REF(blood_delusion), victim) + INVOKE_ASYNC(src, .proc/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_REF(end_blood_frenzy)) + RegisterSignal(src, COMSIG_PARENT_QDELETING, .proc/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_REF(finish_effect), victim), duration) + addtimer(CALLBACK(src, .proc/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 d1f47ff647f6..1e349fd17abb 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -105,6 +105,7 @@ /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, @@ -564,11 +565,29 @@ /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 @@ -626,6 +645,7 @@ /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 ) @@ -1230,42 +1250,6 @@ )) 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 1eb4fd0dda94..99eac4828932 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, GLOBAL_PROC_REF(_addtimer), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(print_command_report), message), announcement_time)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/_addtimer, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time)) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index b986ae41808b..b1134e471d03 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_REF(do_vent_move), exit_vent, travel_time), travel_time) + addtimer(CALLBACK(src, .proc/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_REF(finish_vent_move), exit_vent), travel_time) + addtimer(CALLBACK(src, .proc/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_REF(vent_move), exit_vent), rand(20,60)) + addtimer(CALLBACK(src, .proc/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 76412acf2a5b..7d0612a8da65 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -26,7 +26,7 @@ return if(!ismob(H) && mobs_only) return - INVOKE_ASYNC(src, PROC_REF(Trigger), H) + INVOKE_ASYNC(src, .proc/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 8c8c8f900aab..d825f49c811d 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, TYPE_PROC_REF(/atom, update_appearance)), 1.1 SECONDS) + addtimer(CALLBACK(src, /atom/.proc/update_appearance), 1.1 SECONDS) delay -= 11 icon_state = "rcd_end_reverse" else @@ -540,20 +540,7 @@ qdel(src) else icon_state = "rcd_end" - addtimer(CALLBACK(src, PROC_REF(end)), 15) + addtimer(CALLBACK(src, .proc/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 a89e65715d6a..6460937bfe57 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm @@ -40,11 +40,3 @@ /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 e684c2826bca..697a3f633d81 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm @@ -32,9 +32,3 @@ /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 776e6841d29c..be7962324f6d 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm @@ -70,9 +70,3 @@ /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 a0c9e0f95a9b..01973670d608 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index df7c5ae431c5..e13cca64caf9 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 + var/mob_overlay_state //WS EDIT - Mob Overlay State ///Forced mob worn layer instead of the standard preferred ssize. var/alternate_worn_layer @@ -453,7 +453,14 @@ 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]!") - playsound(src, 'sound/weapons/effects/deflect.ogg', 100) + 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) if(!istype(src, /obj/item/shield)) COOLDOWN_START(src, block_cooldown, block_cooldown_time) return 1 @@ -677,7 +684,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_REF(after_throw), callback) //replace their callback with our own + callback = CALLBACK(src, .proc/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) @@ -845,7 +852,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_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. + 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. var/mob/living/L = usr if(istype(L) && L.incapacitated()) apply_outline(COLOR_RED_GRAY) @@ -904,7 +911,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_REF(tool_check_callback), user, amount, extra_checks) + var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks) if(ismob(target)) if(!do_mob(user, target, delay, extra_checks=tool_check)) @@ -1092,10 +1099,6 @@ 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 7548625b31f6..b84ccff2b8c9 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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src, .proc/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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src, .proc/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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, .proc/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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, .proc/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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/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_REF(detonate_pulse_explode)), 50) + addtimer(CALLBACK(src, .proc/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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/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 be7cafe22df9..18661712b6e4 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/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_REF(trigger)) + RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, .proc/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_REF(wiringGuiReact), user), radius = 42) + wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src, .proc/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 d82a37d5ee6d..a6bdb4534b9b 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_REF(check_menu), user), require_near = TRUE) + var/picked = show_radial_menu(user, src, formRadial(target), custom_check = CALLBACK(src, .proc/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 6d04e2e505ff..97c3419f6fac 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/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_REF(on_walk)) - RegisterSignal(user, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate)) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_walk) + RegisterSignal(user, COMSIG_ATOM_DIR_CHANGE, .proc/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 59fef712b505..cc4fd287c8b7 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_REF(AddInfectionImages), owner) + INVOKE_ASYNC(src, .proc/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_REF(RemoveInfectionImages), owner) + INVOKE_ASYNC(src, .proc/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 52af9852be5c..faf1f22a651a 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_REF(CanReachReact)) + RegisterSignal(src, COMSIG_ATOM_CANREACH, .proc/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 b370c5ebc6c3..78ee6cc25d3c 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/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_REF(sweep)) + RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, .proc/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 f44359ca656c..8a84ae2b3a35 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_REF(check_menu), user, crayon), radius = 36, require_near = TRUE) + var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, .proc/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 c4e48f1a629a..58eba6e70e88 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_REF(update_in_wallet)) + RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, .proc/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 f9181ef3ac6a..8d0d89a88638 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) /obj/item/chainsaw/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 29a8ff25c38a..772a80d6c0e4 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_REF(rename_station), new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE) + response_timer_id = addtimer(CALLBACK(src, .proc/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 8800dee20016..44857142e4db 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -342,6 +342,10 @@ 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 e15f95a40709..7e7bd499a19b 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -802,6 +802,13 @@ /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" diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm index 14edc15f7d18..e800eaed6846 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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/tool_result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(tool_result) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 32a62880d69c..bf61f194b9b7 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_REF(finish_charging)), cooldown_duration) + addtimer(CALLBACK(src, .proc/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_REF(check_range)) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) if(!req_defib) return //If it doesn't need a defib, just say it exists if (!loc || !istype(loc, /obj/item/defibrillator)) //To avoid weird issues from admin spawns diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 34fdcad9f16b..9dd00660d362 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 += "[station_time_timestamp()]
" - dat += "[sector_datestamp()]
" - dat += "
" + dat += "[worldtime2text()]
" //:[world.time / 100 % 6][world.time / 100 % 10]" + dat += "[time2text(world.realtime, "MMM DD")] 504 FS" + 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_REF(emp_end)), 200 * severity) + addtimer(CALLBACK(src, .proc/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 3b2d44d9d838..39b3545c1400 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_REF(AfterSlip))) - AddComponent(/datum/component/wearertargeting/sitcomlaughter, CALLBACK(src, PROC_REF(after_sitcom_laugh))) + 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)) /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_REF(pda_no_detonate)) + RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, .proc/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_REF(pda_no_detonate)) + RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, .proc/pda_no_detonate) /obj/item/pda/cargo name = "cargo technician PDA" diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 65bda2aa1f54..1e96a5b3ce01 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, TYPE_PROC_REF(/obj/item/integrated_signaler, send_activation)) + INVOKE_ASYNC(radio, /obj/item/integrated_signaler.proc/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 ae57fe3d61eb..f5b7cd58fddb 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_REF(resync)), duration , TIMER_STOPPABLE) + resync_timer = addtimer(CALLBACK(src, .proc/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 8986f8443698..3833b63d7ac7 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_REF(recharge)), recharge_time) + addtimer(CALLBACK(src, .proc/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 4abc1a3786bb..e9da1f126aab 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_REF(scan), target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents + addtimer(CALLBACK(src, .proc/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_REF(redirect_rad_act)) + RegisterSignal(user, COMSIG_ATOM_RAD_ACT, .proc/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 fa95991750ec..2f3429995845 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_REF(handle_speech)) + RegisterSignal(M, COMSIG_MOB_SAY, .proc/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 60cfe4eb89b3..6368a4b3d17f 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_REF(ToggleActive)) + RegisterSignal(src, COMSIG_OBJ_HIDE, .proc/ToggleActive) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(trigger)), trigger_delay) + addtimer(CALLBACK(src, .proc/trigger), trigger_delay) /obj/item/pressure_plate/proc/trigger() can_trigger = TRUE diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index a91789c542cd..3c35294f8e3f 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_REF(AreaPowerCheck)) + RegisterSignal(current_area, COMSIG_AREA_POWER_CHANGE, .proc/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 e95ab85cda9d..2a5a043656c2 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_REF(talk_into_impl), M, message, channel, spans.Copy(), language, message_mods) + INVOKE_ASYNC(src, .proc/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_REF(backup_transmission), signal), 20) + addtimer(CALLBACK(src, .proc/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_REF(end_emp_effect), curremp), 200) + addtimer(CALLBACK(src, .proc/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 5d90c839bebf..e04e2bdc422b 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_REF(snap)), 2) + addtimer(CALLBACK(src, .proc/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 6f11fe4ebac1..1e36f8bd328f 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, TYPE_PROC_REF(/obj/item/analyzer, ping)), cooldown_time) + addtimer(CALLBACK(src,/obj/item/analyzer/proc/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_REF(recharge)), cooldown, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 1edec8edb7db..1c103b1dd950 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_REF(update_view))) + tracker = new /datum/movement_detector(src, CALLBACK(src, .proc/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 e1a5cbaf02e9..b152504a3431 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_REF(swap), user), 25) + addtimer(CALLBACK(src, .proc/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 4f034824e2f4..3d054927d2c8 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_REF(radiation_aftereffect), M), (wavelength+(intensity*4))*5) + addtimer(CALLBACK(src, .proc/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 f6687ffec110..b26ec181525b 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_REF(toggle_off)), 5) //To stop a signal being spammed from a proxy sensor constantly going off or whatever + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/atom, update_appearance)), 20 + (i - 1) * 10) + addtimer(CALLBACK(src, /atom/.proc/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 dc49ee2dc6ae..39fe7d490320 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/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_REF(jedi_spin), user) + INVOKE_ASYNC(src, .proc/jedi_spin, user) /obj/item/dualsaber/proc/jedi_spin(mob/living/user) - dance_rotate(user, CALLBACK(user, TYPE_PROC_REF(/mob, dance_flip))) + dance_rotate(user, CALLBACK(user, /mob.proc/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_REF(jedi_spin), user) + INVOKE_ASYNC(src, .proc/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 111dd3aa96bc..7554614495ae 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_REF(clear_cooldown)), cooldown_time) + addtimer(CALLBACK(src, .proc/clear_cooldown), cooldown_time) shaking = FALSE diff --git a/code/game/objects/items/energyhalberd.dm b/code/game/objects/items/energyhalberd.dm index 416964bbfded..fb03f24fbeb6 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_REF(on_halberdwield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_halberdunwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_halberdwield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/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 94f1ae2a6062..a695bd70e410 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_REF(DiscoFever)), 5, TIMER_STOPPABLE) //Call ourselves every 0.5 seconds to change colors + TimerID = addtimer(CALLBACK(src, .proc/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 106ee2a50525..75f96e4786ad 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, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection), 1) + addtimer(CALLBACK(src, /obj/item/extinguisher/proc/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, TYPE_PROC_REF(/obj/item/extinguisher, move_particles), water_particles), 2) + addtimer(CALLBACK(src, /obj/item/extinguisher/proc/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, TYPE_PROC_REF(/obj/item/extinguisher, move_particles), particles, repetition), 2) + addtimer(CALLBACK(src, /obj/item/extinguisher/proc/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, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection, repetition), timer_seconds) + addtimer(CALLBACK(src, /obj/item/extinguisher/proc/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 b2e5534a92b0..8203880b2b27 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) /obj/item/fireaxe/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index 6a1e439422a4..7412c1892676 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_REF(handle_flaming)) - RegisterSignal(flamer_proj, COMSIG_PARENT_QDELETING, PROC_REF(stop_operating)) + RegisterSignal(flamer_proj, COMSIG_MOVABLE_MOVED, .proc/handle_flaming) + RegisterSignal(flamer_proj, COMSIG_PARENT_QDELETING, .proc/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 1c3bc9d5034c..313b91acd71b 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, TYPE_PROC_REF(/datum, _RemoveElement), list(forced_value)), duration) + addtimer(CALLBACK(T, /datum/.proc/_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 b675a0012152..5d42e6b7d469 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_REF(prime)), isnull(delayoverride)? det_time : delayoverride) + addtimer(CALLBACK(src, .proc/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_REF(prime)), det_time) + addtimer(CALLBACK(src, .proc/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 5326b303d977..0c7203f0a5c0 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_REF(prime)), rand(15,60)) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) + addtimer(CALLBACK(P, /obj/item/grenade/proc/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, TYPE_PROC_REF(/obj/item/slime_extract, activate_slime)), rand(15,60)) + addtimer(CALLBACK(P, /obj/item/slime_extract/proc/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 be2ec68f0cb1..181feff62147 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_REF(prime)), rand(10, 60)) + addtimer(CALLBACK(src, .proc/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_REF(randomiseLightColor)), 2, TIMER_STOPPABLE) + timerID = addtimer(CALLBACK(src, .proc/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 c6200d69ae9e..7bf5fd65bf08 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_REF(prime)), isnull(delayoverride)? det_time : delayoverride) + addtimer(CALLBACK(src, .proc/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 f0198b7f1a0b..cf5fab1d4a0a 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_REF(prime)), isnull(delayoverride)? det_time : delayoverride) + addtimer(CALLBACK(src, .proc/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 f3f891bad11d..490c5c0aebaa 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_REF(prime)), det_time*10) + addtimer(CALLBACK(src, .proc/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 01f147a1b1d0..764bf8a61ccd 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 = "legcuff" + icon_state = "handcuff" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' flags_1 = CONDUCT_1 @@ -235,23 +235,12 @@ 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -305,8 +294,8 @@ snap = FALSE if(snap) close_trap() - L.visible_message("[L] gets caught by \the [src]!", \ - "You get caught by \the [src]!") + L.visible_message("[L] triggers \the [src].", \ + "You trigger \the [src]!") L.apply_damage(trap_damage, BRUTE, def_zone) /obj/item/restraints/legcuffs/beartrap/energy @@ -320,7 +309,7 @@ /obj/item/restraints/legcuffs/beartrap/energy/Initialize() . = ..() - addtimer(CALLBACK(src, PROC_REF(dissipate)), 100) + addtimer(CALLBACK(src, .proc/dissipate), 100) /obj/item/restraints/legcuffs/beartrap/energy/proc/dissipate() if(!ismob(loc)) diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index a9f9e792c962..a1612fd7c4dd 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_REF(check_menu), M), radius = 42, require_near = TRUE) + var/choice = show_radial_menu(M, src , nullrod_icons, custom_check = CALLBACK(src, .proc/check_menu, M), radius = 42, require_near = TRUE) if(!choice || !check_menu(M)) return diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm index e3f21a70463e..915c7e36cc90 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_REF(detonate)), delay, TIMER_STOPPABLE) + detonation_timerid = addtimer(CALLBACK(src, .proc/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 8dd464481a15..acfe971b0337 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_REF(finish)), time, TIMER_STOPPABLE) + timing_id = addtimer(CALLBACK(src, .proc/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 893721e7a49b..d225e7180db8 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_REF(go_invisible)), 10, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 8247d02cb549..e8122bd34263 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_REF(replenish)),replenish_cooldown) + addtimer(CALLBACK(src,.proc/replenish),replenish_cooldown) if(injection_cooldown > 0) ready = FALSE - addtimer(CALLBACK(src, PROC_REF(set_ready)),injection_cooldown) + addtimer(CALLBACK(src,.proc/set_ready),injection_cooldown) else playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) update_appearance() @@ -158,6 +158,23 @@ 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 da1906143abc..c0773b2032cf 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 = "Bridget Saint-Baskett" + author = "Baxter Baxter" title = "Trickwines for brewers" dat = {" @@ -262,16 +262,7 @@

    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.
    - -

    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.
    + 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.

    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.
    @@ -294,30 +285,11 @@ 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
    -

    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.
    +
    Baxter Baxter, Senior Brewer
    + P.S.: please stop asking how the uranium got into those flasks. -
    Bridget Saint-Baskett, Senior Brewer
    - - - "} + + "} // Wiki books that are linked to the configured wiki link. diff --git a/code/game/objects/items/pitchfork.dm b/code/game/objects/items/pitchfork.dm index 05183ed479db..401007c824b0 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) /obj/item/pitchfork/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index a6ef402ecad4..e2461af4175a 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 actually." + desc = "An adorable mothperson plushy. It's a sad bug... that's quite sad actualy." icon_state = "moffplush_punished" /obj/item/toy/plush/moth/firewatch @@ -772,46 +772,6 @@ 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 f88df8429912..2582f91860b2 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 f12137df7531..09e676980262 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_REF(charge_lollipops)), charge_delay) + addtimer(CALLBACK(src, .proc/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_REF(safedecon)) + RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT, .proc/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, TYPE_PROC_REF(/atom, update_icon)) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, .proc/on_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, TYPE_PROC_REF(/atom, update_icon)) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, .proc/on_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, TYPE_PROC_REF(/atom, update_icon)) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, .proc/on_update_icon) update_appearance() //////////////////// diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index 04d7629623b5..e2803060e4eb 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) START_PROCESSING(SSobj, src) /obj/item/singularityhammer/ComponentInitialize() @@ -103,8 +103,8 @@ /obj/item/mjollnir/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) /obj/item/mjollnir/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index be6b9d3a5a14..e5ea0b1b8229 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/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 1296e889181d..5ed78815b3f4 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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)) + if(!H.gloves && !HAS_TRAIT(H, TRAIT_PIERCEIMMUNE)) // golems, etc 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 200fc408768f..04a9898c523d 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -465,6 +465,11 @@ 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" @@ -474,6 +479,10 @@ GLOBAL_LIST_INIT(snow_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 00d793b6e1fb..f835bb776256 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -228,7 +228,6 @@ 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), \ @@ -279,9 +278,6 @@ 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 5653b641c99d..0811e39fbe67 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_REF(merge_without_del), item_stack) + INVOKE_ASYNC(src, .proc/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_REF(on_movable_entered_occupied_turf), + COMSIG_ATOM_ENTERED = .proc/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_REF(merge), arrived) + INVOKE_ASYNC(src, .proc/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 92fe31d32a98..5aa42bb0b4c6 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, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + if(!do_mob(user, C, self_delay, extra_checks=CALLBACK(C, /mob/living/proc/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, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + if(!do_mob(user, C, other_delay, extra_checks=CALLBACK(C, /mob/living/proc/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 b4ec267bd770..4d44a749146c 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_REF(regenerate_presents)), 30 SECONDS) + addtimer(CALLBACK(src, .proc/regenerate_presents), 30 SECONDS) var/mob/M = get(loc, /mob) if(!istype(M)) @@ -336,6 +336,7 @@ /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 dc3d2deff0ba..910ea174c3a6 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_REF(Pickup_ores)) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/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_REF(do_scatter), I) + INVOKE_ASYNC(src, .proc/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 fba5fd1b4fc7..05b02e77f8b1 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -303,11 +303,6 @@ 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." @@ -439,40 +434,22 @@ 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/p16/PopulateContents() - for(var/i in 1 to 4) +/obj/item/storage/belt/military/minutemen/loaded/PopulateContents() + for(var/i in 1 to 7) 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("Donk! Co.", "CyberSun") + var/sponsor = pick("DonkCo", "Waffle Co.", "Roffle Co.", "Gorlax Marauders", "Tiger Cooperative") desc = "A set of snack-tical webbing worn by athletes of the [sponsor] VR sports division." /obj/item/storage/belt/military/snack/ComponentInitialize() @@ -849,11 +826,6 @@ 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 9e8d4e94745c..98fa24e97379 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_REF(check_menu), user, W), radius = 36, require_near = TRUE) + var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, .proc/check_menu, user, W), radius = 36, require_near = TRUE) if(!choice) return FALSE if(icon_state == "paperbag_[choice]") diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 41f214998ffd..58f10b2ccd8d 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -306,6 +306,13 @@ 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 4505f596907f..dc9aea782406 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -176,10 +176,14 @@ /obj/item/storage/firstaid/radiation name = "radiation treatment kit" desc = "Used to treat severe radiation poisoning." - icon_state = "radiation" - item_state = "firstaid-ointment" //its yellow + icon_state = "antitoxin" + item_state = "firstaid-toxin" 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 4b91fc6caae3..e494392ee911 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_REF(convert)) + RegisterSignal(src, COMSIG_PARENT_ATTACKBY, .proc/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_REF(apply_stun_effect_end), L), apply_stun_delay) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/atom/movable, throw_at), thrown_by, throw_range+2, throw_speed, null, TRUE), 1) + addtimer(CALLBACK(src, /atom/movable.proc/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 b8f4451a9660..046439551291 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_REF(move_react)) - RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react)) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/move_react) + RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, .proc/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 4095d159ea82..1708b0265793 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_REF(reduce_metal_synth_cooldown)), 10 SECONDS) + addtimer(CALLBACK(src, .proc/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 efdeafd99cfb..5b07c40f6f21 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_REF(on_portal_destroy)) //Gosh darn it kevinz. - RegisterSignal(created[2], COMSIG_PARENT_QDELETING, PROC_REF(on_portal_destroy)) + RegisterSignal(created[1], COMSIG_PARENT_QDELETING, .proc/on_portal_destroy) //Gosh darn it kevinz. + RegisterSignal(created[2], COMSIG_PARENT_QDELETING, .proc/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 fd9b3859cd3b..cb6b8d3abe9f 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_REF(seal)), 50) + addtimer(CALLBACK(src, .proc/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_REF(seal)), 50) + addtimer(CALLBACK(src, .proc/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 e2dfc9a81dc3..235e267e43c3 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -65,6 +65,11 @@ 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 2a821c7a8317..2cbe3e81b1ef 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_REF(withdraw_offer), user), 6 SECONDS) + addtimer(CALLBACK(src, .proc/withdraw_offer, user), 6 SECONDS) return ..() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 211c03d1d98a..0046ece63058 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_REF(stopRumble)), 600) + addtimer(CALLBACK(src, .proc/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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(respawn)), respawn_time) + addtimer(CALLBACK(src, .proc/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_REF(do_toy_talk), user) + INVOKE_ASYNC(src, .proc/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_REF(shake_camera), M, 2, 1), 0.8 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, .proc/shake_camera, M, 2, 1), 0.8 SECONDS) else to_chat(user, "Nothing happens.") @@ -1370,18 +1370,6 @@ 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." @@ -1437,7 +1425,7 @@ if(cooldown <= world.time) cooldown = (world.time + 300) user.visible_message("[user] adjusts the dial on [src].") - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/items/radiostatic.ogg', 50, FALSE), 0.5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/items/radiostatic.ogg', 50, FALSE), 0.5 SECONDS) else to_chat(user, "The dial on [src] jams up") return @@ -1452,4 +1440,4 @@ /obj/item/toy/braintoy/attack_self(mob/user) if(cooldown <= world.time) cooldown = (world.time + 10) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/effects/blobattack.ogg', 50, FALSE), 0.5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 848ade225ce2..0fc80de2759d 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_REF(set_expression), "neutral"), duration, TIMER_STOPPABLE) + expression_timer = addtimer(CALLBACK(src, .proc/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 c019471e3cdd..d6955ff244ba 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, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, 1000)), 0) + addtimer(CALLBACK(src, /datum.proc/_AddComponent, list(/datum/component/beauty, 1000)), 0) /obj/item/statuebust/hippocratic name = "hippocrates bust" @@ -523,6 +523,29 @@ 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." @@ -737,8 +760,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/vibro_weapon/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) /obj/item/vibro_weapon/ComponentInitialize() . = ..() diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 78cfa10a2e0b..61acce5c9d0a 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/hitting_projectile) +/obj/bullet_act(obj/projectile/P) . = ..() - 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) + playsound(src, P.hitsound, 50, TRUE) + if(P.suppressed != SUPPRESSED_VERY) + visible_message("[src] is hit by \a [P]!", null, null, COMBAT_MESSAGE_RANGE) if(!QDELETED(src)) //Bullet on_hit effect might have already destroyed this object - take_damage(hitting_projectile.damage, hitting_projectile.damage_type, hitting_projectile.flag, 0, turn(hitting_projectile.dir, 180), hitting_projectile.armour_penetration) + take_damage(P.damage, P.damage_type, P.flag, 0, turn(P.dir, 180), P.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_REF(reset_shocked)), 10) + addtimer(CALLBACK(src, .proc/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 46090aa86658..d2d1325e435b 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_REF(unset_machine)) + RegisterSignal(O, COMSIG_PARENT_QDELETING, .proc/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_REF(check_reskin_menu), M), radius = 38, require_near = TRUE) + var/pick = show_radial_menu(M, src, items, custom_check = CALLBACK(src, .proc/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 69efcd42af15..c0198939c24a 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -7,8 +7,6 @@ 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 3c84cea0de27..7badc7a3795b 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_REF(can_user_rotate)),CALLBACK(src, PROC_REF(can_be_rotated)),null) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null) /obj/structure/chair/proc/can_be_rotated(mob/user) return TRUE @@ -447,10 +447,20 @@ /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 8e5cf9a19493..b7aa1f65d2bd 100644 --- a/code/game/objects/structures/beds_chairs/pew.dm +++ b/code/game/objects/structures/beds_chairs/pew.dm @@ -9,8 +9,6 @@ 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 35b7663ca05e..bc1155ec34aa 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -134,6 +134,13 @@ 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 417a1f8d86a6..788fc28a51c6 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_REF(canreach_react)) + RegisterSignal(src, COMSIG_ATOM_CANREACH, .proc/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 a5d7531b0aa8..b6a80ee51978 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_REF(ResetMoveDelay)), CONFIG_GET(number/movedelay/walk_delay) * move_speed_multiplier) + addtimer(CALLBACK(src, .proc/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 8657b764b9bb..ef471d66db75 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_REF(close_on_my_own)), auto_close_time, TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/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 27a9e423110b..c9d65880946c 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/armor/vest/capcarapace/captunic(src) + new /obj/item/clothing/suit/captunic(src) new /obj/item/clothing/head/crown/fancy(src) new /obj/item/cartridge/captain(src) new /obj/item/storage/box/silver_ids(src) @@ -414,7 +414,7 @@ new /obj/item/clothing/shoes/jackboots(src) new /obj/item/clothing/head/beret/lt(src) new /obj/item/clothing/head/beret/black(src) - new /obj/item/clothing/under/rank/command(src) - new /obj/item/clothing/under/rank/command/skirt(src) - new /obj/item/clothing/under/rank/command/nt(src) - new /obj/item/clothing/under/rank/command/nt/skirt(src) + 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/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm index f895ad7421c7..26335320c2b3 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_REF(do_close)), 13) + addtimer(CALLBACK(src, .proc/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/divine.dm b/code/game/objects/structures/divine.dm index 874392a2b9dd..f5e50fc57d06 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, TYPE_PROC_REF(/atom, update_appearance)), time_between_uses) + addtimer(CALLBACK(src, /atom/.proc/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 ebfda776726f..700d55361d90 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -6,8 +6,6 @@ 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 b2928d361d11..a5235f461a4f 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, TYPE_PROC_REF(/mob/living, electrocute_act), 85, src, 1), 1) + addtimer(CALLBACK(buckled_mob, /mob/living.proc/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 a0097504c1d3..1bd6325e60a5 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, TYPE_PROC_REF(/obj/structure/falsewall, toggle_open)), 5) + addtimer(CALLBACK(src, /obj/structure/falsewall/proc/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 50b578a3aee2..2c56b9d7a095 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -3,8 +3,6 @@ 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) @@ -24,8 +22,6 @@ layer = FLY_LAYER var/log_amount = 10 - hitsound_type = PROJECTILE_HITSOUND_WOOD - /obj/structure/flora/tree/ComponentInitialize() . = ..() AddComponent(/datum/component/largetransparency) @@ -56,8 +52,6 @@ density = FALSE pixel_x = -16 - hitsound_type = PROJECTILE_HITSOUND_WOOD - /obj/structure/flora/tree/pine name = "pine tree" desc = "A coniferous pine tree." @@ -368,7 +362,7 @@ /obj/item/kirbyplants/ComponentInitialize() . = ..() AddComponent(/datum/component/tactical) - addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, 500)), 0) + addtimer(CALLBACK(src, /datum.proc/_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 @@ -376,8 +370,6 @@ icon_state = "random_plant" var/list/static/states - hitsound_type = PROJECTILE_HITSOUND_STONE - /obj/item/kirbyplants/random/Initialize() . = ..() icon = 'icons/obj/flora/plants.dmi' @@ -432,8 +424,6 @@ 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)]" @@ -535,6 +525,201 @@ . = ..() 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?" @@ -785,274 +970,3 @@ 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 56d0f0f2526f..b56c8daf4a57 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -166,6 +166,102 @@ 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" @@ -260,6 +356,54 @@ 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!" @@ -301,7 +445,7 @@ id.update_label() else to_chat(L, "Your owner is already dead! You will soon perish.") - addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, dust), 150)) //Give em a few seconds as a mercy. + addtimer(CALLBACK(L, /mob.proc/dust, 150)) //Give em a few seconds as a mercy. /datum/outfit/demonic_friend name = "Demonic Friend" @@ -331,6 +475,121 @@ 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 @@ -477,6 +736,57 @@ /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 59ef31fafa4e..51816849cbe3 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_REF(raise_blade)), GUILLOTINE_ANIMATION_LENGTH) + addtimer(CALLBACK(src, .proc/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_REF(drop_blade), user), GUILLOTINE_ANIMATION_LENGTH - 2) // Minus two so we play the sound and decap faster + addtimer(CALLBACK(src, .proc/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_REF(drop_blade)), GUILLOTINE_ANIMATION_LENGTH) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/mob, emote), "clap"), delay_offset * 0.3) + addtimer(CALLBACK(C, /mob/.proc/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 cf0d6957e69c..571f5ca0d3a3 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_REF(check_menu), user), radius = 36, require_near = TRUE) + var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/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 00124d781d80..6c79afce172c 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_REF(warpbots)), rand(spawn_time_min, spawn_time_max)) + addtimer(CALLBACK(src, .proc/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 900d31f5e8a8..f85d57278cf9 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_REF(cooldown)), 5) + addtimer(CALLBACK(src, .proc/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_REF(cooldown)), 5) + addtimer(CALLBACK(src, .proc/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 50cadf2f8801..a4523da28ed7 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_REF(collapse)), 5 SECONDS) + addtimer(CALLBACK(src, .proc/collapse), 5 SECONDS) /** * Handles portal deletion diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index 14bd21d53160..4ba59605eb0d 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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/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 7a57d1d5ac3a..d06d5e167157 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -15,8 +15,6 @@ anchored = TRUE resistance_flags = FIRE_PROOF | LAVA_PROOF - hitsound_type = PROJECTILE_HITSOUND_FLESH - var/gps = null var/obj/effect/light_emitter/tendril/emitted_light @@ -73,7 +71,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_REF(collapse)), 50) + addtimer(CALLBACK(src, .proc/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 4ed4ddfcbbf7..7e562976e1af 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_REF(respawn), mind), respawn_time, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 e0f6e22f3e7e..9dda5181c071 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, TYPE_PROC_REF(/obj/machinery/deployable_turret, fire_helper), user), i*rate_of_fire) + addtimer(CALLBACK(src, /obj/machinery/deployable_turret/.proc/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 9e201e29b108..3cd67b47d74e 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_REF(Close)), close_delay) + addtimer(CALLBACK(src, .proc/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 c07dbe92f990..2e540611f343 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"))) + if(!(H.gender in list("male", "female"))) //blame the patriarchy return if(H.gender == "male") - if(alert(H, "Become a Woman?", "Confirmation", "Yes", "No") == "Yes") + if(alert(H, "Become a Witch?", "Confirmation", "Yes", "No") == "Yes") if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return H.gender = "female" - to_chat(H, "You trans your gender. You're now a woman.") + to_chat(H, "Man, you feel like a woman!") else return else - if(alert(H, "Become a Man?", "Confirmation", "Yes", "No") == "Yes") + if(alert(H, "Become a Warlock?", "Confirmation", "Yes", "No") == "Yes") if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return H.gender = "male" - to_chat(H, "You trans your gender. You're now a man.") + to_chat(H, "Whoa man, you feel like 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 294976f72fc6..4c7625b5dbcb 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_REF(check_anchored_state), anchored))) + if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, .proc/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 5909e0f666b2..c8cf1931c701 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_REF(can_be_rotated))) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/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 95c24145399f..6147308cf62e 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_REF(on_exit), + COMSIG_ATOM_EXIT = .proc/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_REF(can_be_rotated)),CALLBACK(src, PROC_REF(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/can_be_rotated),CALLBACK(src,.proc/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_REF(can_be_rotated)),CALLBACK(src, PROC_REF(after_rotation))) + 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)) /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_REF(check_anchored), anchored))) + if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, .proc/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 deleted file mode 100644 index 0b0a10565a3f..000000000000 --- a/code/game/objects/structures/sauna.dm +++ /dev/null @@ -1,101 +0,0 @@ -#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 16cf7af6ce81..a2c5d59af916 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(make_mist)), 5 SECONDS) + addtimer(CALLBACK(src, .proc/make_mist), 5 SECONDS) if(mist && (!on || current_temperature == SHOWER_FREEZING)) - addtimer(CALLBACK(src, PROC_REF(clear_mist)), 25 SECONDS) + addtimer(CALLBACK(src, .proc/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 4a2a98192243..1c8463adee5e 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -298,12 +298,3 @@ /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 f2ab429803c1..ba79b6ff93f5 100644 --- a/code/game/objects/structures/signs/signs_maps.dm +++ b/code/game/objects/structures/signs/signs_maps.dm @@ -56,7 +56,3 @@ 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 47cf473c84cf..3e496f06252a 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_REF(on_exit), + COMSIG_ATOM_EXIT = .proc/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_REF(stair_ascend), leaving) + INVOKE_ASYNC(src, .proc/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_REF(on_multiz_new)) + RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW, .proc/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 a4155003dcdb..f43a7a95f8fd 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, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, impressiveness * 75)), 0) + addtimer(CALLBACK(src, /datum.proc/_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 5047e0f3e2a9..779f97ad8bbf 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_REF(on_exit), + COMSIG_ATOM_EXIT = .proc/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 5882d5c382cd..16189291abc0 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_REF(RemoveItemFromTable)) //Listen for the pickup event, unregister on pick-up so we aren't moved + RegisterSignal(I, COMSIG_MOVABLE_MOVED, .proc/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,15 +339,13 @@ 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -363,7 +361,7 @@ return // Don't break if they're just flying past if(AM.throwing) - addtimer(CALLBACK(src, PROC_REF(throw_check), AM), 5) + addtimer(CALLBACK(src, .proc/throw_check, AM), 5) else check_break(AM) @@ -426,8 +424,6 @@ 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) ..() @@ -631,7 +627,7 @@ UnregisterSignal(patient, COMSIG_PARENT_QDELETING) patient = new_patient if(patient) - RegisterSignal(patient, COMSIG_PARENT_QDELETING, PROC_REF(patient_deleted)) + RegisterSignal(patient, COMSIG_PARENT_QDELETING, .proc/patient_deleted) /obj/structure/table/optable/proc/patient_deleted(datum/source) SIGNAL_HANDLER @@ -780,8 +776,6 @@ 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 c8c6150c7e15..c4940e941f2f 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_REF(on_attached_delete)) + RegisterSignal(attached_item, COMSIG_PARENT_QDELETING, .proc/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 77cb9c3a7b67..570ead69ead7 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_REF(finish_animation)), OPEN_DURATION) + addtimer(CALLBACK(src, .proc/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_REF(finish_animation)), CLOSE_DURATION) + addtimer(CALLBACK(src, .proc/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_REF(start_stopped), pod), 5) + addtimer(CALLBACK(src, .proc/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_REF(finish_stopped), pod), OPEN_DURATION + 2) + addtimer(CALLBACK(src, .proc/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 f3ea6d55a1da..61a93dab7f14 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_REF(after_rot))) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS,null,null,CALLBACK(src,.proc/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_REF(can_wrench_in_loc), user))) + if(I.use_tool(src, user, time_to_unwrench, volume=50, extra_checks=CALLBACK(src, .proc/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 f56cfae9a5b8..a23b6860edef 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 78ebfc3a4fd7..200aaf35700d 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_REF(on_exit), + COMSIG_ATOM_EXIT = .proc/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_REF(can_be_rotated)), after_rotation=CALLBACK(src, PROC_REF(after_rotation))) + AddComponent(/datum/component/simple_rotation, rotation_flags, can_be_rotated=CALLBACK(src, .proc/can_be_rotated), after_rotation=CALLBACK(src,.proc/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 d23ef8bca223..92a72b7261be 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -30,8 +30,6 @@ 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) @@ -68,7 +66,7 @@ explosion_block = EXPLOSION_BLOCK_PROC var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = PROC_REF(on_exit), + COMSIG_ATOM_EXIT = .proc/on_exit, ) if (flags_1 & ON_BORDER_1) @@ -76,7 +74,7 @@ /obj/structure/window/ComponentInitialize() . = ..() - 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))) + 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)) /obj/structure/window/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) @@ -192,13 +190,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_REF(check_anchored), anchored))) + if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, .proc/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_REF(check_state_and_anchored), state, anchored))) + if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, .proc/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) @@ -207,7 +205,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_REF(check_state_and_anchored), state, anchored))) + if(I.use_tool(src, user, 100, volume = 75, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored))) state = RWINDOW_SECURE to_chat(user, "You pry the window into the frame.") return @@ -411,7 +409,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_REF(cool_bolts)), 300) + addtimer(CALLBACK(src, .proc/cool_bolts), 300) return if(RWINDOW_BOLTS_HEATED) if(I.tool_behaviour == TOOL_SCREWDRIVER) @@ -540,7 +538,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_REF(cool_bolts)), 300) + addtimer(CALLBACK(src, .proc/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 9b53f3d2b010..09affc888bf0 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -245,62 +245,8 @@ 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') -//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 ("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') 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', \ @@ -311,6 +257,8 @@ 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 4f493685e60c..74c351e04118 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_AIRLOCK) - canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) + canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) /turf/closed/indestructible/alien diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 321a5ce25e90..ebc3b5164505 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -30,8 +30,6 @@ var/x_offset = -4 var/y_offset = -4 - hitsound_type = PROJECTILE_HITSOUND_STONE - /turf/closed/mineral/Initialize(mapload, inherited_virtual_z) . = ..() if(has_borders) @@ -107,7 +105,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_REF(AfterChange)), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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) @@ -161,7 +159,6 @@ //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) @@ -578,7 +575,7 @@ if(defer_change) flags = CHANGETURF_DEFER_CHANGE ScrapeAway(null, flags) - addtimer(CALLBACK(src, PROC_REF(AfterChange)), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) /turf/closed/mineral/gibtonite/volcanic @@ -641,7 +638,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_REF(AfterChange)), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 720a95afd0e1..77259ba448d2 100644 --- a/code/game/turfs/closed/wall/mineral_walls.dm +++ b/code/game/turfs/closed/wall/mineral_walls.dm @@ -7,8 +7,6 @@ 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!" @@ -62,8 +60,6 @@ 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 @@ -101,8 +97,6 @@ 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 @@ -187,8 +181,6 @@ 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 @@ -238,8 +230,6 @@ 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 @@ -308,8 +298,6 @@ 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 @@ -343,8 +331,6 @@ 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) @@ -421,8 +407,6 @@ 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 0e4d5ae8f842..a665e0935ee2 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, TYPE_PROC_REF(/mob/living/carbon, spin), 1, 1)) + new /datum/forced_movement(C, get_ranged_target_turf(C, olddir, 4), 1, FALSE, CALLBACK(C, /mob/living/carbon/.proc/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 f4bfa034fa12..b8931f740c4b 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -281,6 +281,8 @@ 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 542ac66c1355..6a4908a4889b 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_REF(check_menu), user), + custom_check = CALLBACK(src, .proc/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 a0a4a357fe58..9157bfecc5b0 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_REF(check_menu), user, I), radius = 36, require_near = TRUE) + var/choice = show_radial_menu(user,src, lighttile_designs, custom_check = CALLBACK(src, .proc/check_menu, user, I), radius = 36, require_near = TRUE) if(!choice) return FALSE currentcolor = choice diff --git a/code/game/turfs/open/floor/plating/planet.dm b/code/game/turfs/open/floor/plating/planet.dm index a86847ca8f78..d1577e516b6d 100644 --- a/code/game/turfs/open/floor/plating/planet.dm +++ b/code/game/turfs/open/floor/plating/planet.dm @@ -59,11 +59,6 @@ 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 1fbf75b2e2f2..1bd9f537c9af 100644 --- a/code/game/turfs/open/floor/plating/rockplanet.dm +++ b/code/game/turfs/open/floor/plating/rockplanet.dm @@ -33,9 +33,6 @@ 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 @@ -49,37 +46,3 @@ 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 ca5a6fe3fd25..b3305f725e0e 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/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_bounce_sound = 'sound/weapons/gun/general/mag_bullet_remove.ogg' //sound played when a shell casing is ejected ontop of the turf. 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,8 +76,6 @@ 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) @@ -465,7 +463,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, TYPE_PROC_REF(/datum/component/storage, mass_remove_from_storage), src, things, progress))) + while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /datum/component/storage.proc/mass_remove_from_storage, src, things, progress))) stoplag(1) progress.end_progress() @@ -671,7 +669,3 @@ 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 8365283c7897..93f1e15e88cf 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, GLOBAL_PROC_REF(RunUnitTests)) + cb = CALLBACK(GLOBAL_PROC, /proc/RunUnitTests) #else cb = VARSET_CALLBACK(SSticker, force_ending, TRUE) #endif - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), cb, 10 SECONDS)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/_addtimer, cb, 10 SECONDS)) /world/proc/SetupLogs() diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 9341a5dec3ef..33b923f10285 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, GLOBAL_PROC_REF(restore_stickybans)), 5 SECONDS, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_OVERRIDE) + GLOB.stickbanadminexemptiontimerid = addtimer(CALLBACK(GLOBAL_PROC, /proc/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, TYPE_PROC_REF(/datum/controller/subsystem/dbcore, QuerySelect), list( + INVOKE_ASYNC(SSdbcore, /datum/controller/subsystem/dbcore/proc.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 929cf33f3315..6f1809098f9d 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -26,7 +26,8 @@ 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/revokebunkerbypass, + /client/proc/report_sgt //TEMP ) GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) GLOBAL_PROTECT(admin_verbs_admin) @@ -775,3 +776,13 @@ 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/create_mob.dm b/code/modules/admin/create_mob.dm index c1845945485f..343289191fb6 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -38,6 +38,7 @@ 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 99e7b1692ecc..adb7a42dc511 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_REF(do_bloodbath), M) + INVOKE_ASYNC(src, .proc/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 f8d40a6dde53..75abbb5391c2 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_REF(admin_force_hud)) + .["Force HUD"] = CALLBACK(src,.proc/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 bb46d7250b0b..fc6f055f4ae1 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 response team...") + message_admins("[key_name(usr)] is creating a CentCom response team...") if(src.makeEmergencyresponseteam()) - message_admins("[key_name(usr)] created a response team.") - log_admin("[key_name(usr)] created a response team.") + message_admins("[key_name(usr)] created a CentCom response team.") + log_admin("[key_name(usr)] created a CentCom response team.") else - 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.") + 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.") 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, GLOBAL_PROC_REF(to_chat), L, "You have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, /proc/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, GLOBAL_PROC_REF(to_chat), L, "You have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, /proc/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, GLOBAL_PROC_REF(to_chat), L, "You have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, /proc/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, GLOBAL_PROC_REF(to_chat), L, "You have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, /proc/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 2500be7f9035..0295a1f95cb6 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_REF(Run)) + INVOKE_ASYNC(src, .proc/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 eed725fc3154..1b9b41d773b1 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, TYPE_PROC_REF(/client, giveadminhelpverb)), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps + initiator.adminhelptimerid = addtimer(CALLBACK(initiator, /client/proc/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, TYPE_PROC_REF(/client, giveadminhelpverb)), 50) + addtimer(CALLBACK(initiator, /client/proc/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: [game_timestamp(wtime = opened_at)] (Approx [DisplayTimeText(world.time - opened_at)] ago)" + dat += "

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

    " if(initiator) dat += "Actions:
    [full_monty(ref_src)]
    " diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 9647d4c07947..63f0fc81bc87 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, TYPE_PROC_REF(/mob/living/carbon/human, Robotize)) + INVOKE_ASYNC(H, /mob/living/carbon/human.proc/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, TYPE_PROC_REF(/mob, Animalize)) + INVOKE_ASYNC(M, /mob.proc/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, TYPE_PROC_REF(/mob/living/carbon/human, Alienize)) + INVOKE_ASYNC(M, /mob/living/carbon/human/proc/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, TYPE_PROC_REF(/mob/living/carbon/human, slimeize)) + INVOKE_ASYNC(M, /mob/living/carbon/human/proc/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_REF(cmp_timer_data)) + sorted = sortTim(sorted, .proc/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 6c303cddf060..72091fbe0469 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -1,6 +1,3 @@ -/// 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" @@ -20,7 +17,7 @@ Make Blob
    Make Wizard (Requires Ghosts)
    Make Nuke Team (Requires Ghosts)
    - Make Response Team (Requires Ghosts)
    + Make CentCom Response Team (Requires Ghosts)
    Make Abductor Team (Requires Ghosts)
    Make Revenant (Requires Ghost)
    "} @@ -221,11 +218,6 @@ .["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) @@ -234,6 +226,8 @@ 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 @@ -283,23 +277,18 @@ ertemplate = new /datum/ert/centcom_official var/list/settings = list( - "preview_callback" = CALLBACK(src, PROC_REF(makeERTPreviewIcon)), + "preview_callback" = CALLBACK(src, .proc/makeERTPreviewIcon), "mainsettings" = list( - "template" = list("desc" = "Template", "callback" = CALLBACK(src, PROC_REF(makeERTTemplateModified)), "type" = "datum", "path" = "/datum/ert", "subtypesonly" = TRUE, "value" = ertemplate.type), + "template" = list("desc" = "Template", "callback" = CALLBACK(src, .proc/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" = "Spawn as humans", "type" = "boolean", "value" = "[(ertemplate.enforce_human ? "Yes" : "No")]"), + "enforce_human" = list("desc" = "Enforce human authority", "type" = "boolean", "value" = "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 @@ -317,174 +306,79 @@ ertemplate.teamsize = prefs["teamsize"]["value"] ertemplate.mission = prefs["mission"]["value"] ertemplate.polldesc = prefs["polldesc"]["value"] - 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 - - // This list will take priority over spawnpoints if not empty - var/list/spawn_turfs = list() - - // Takes precedence over spawnpoints[1] if not null - var/turf/brief_spawn - - 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 - - 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...")) - - 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 - 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 + ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" ? TRUE : FALSE + ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" ? TRUE : FALSE - 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 - earmarked_leader = pick(candidates) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc]?", "deathsquad", null) + var/teamSpawned = FALSE - 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] + 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 - 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 + //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 - //Logging and cleanup - log_game("[key_name(ert_operative)] has been selected as an [ert_antag.name]") - numagents-- - teamSpawned++ + if(ertemplate.enforce_human || !(ERTOperative.dna.species.changesource_flags & ERT_SPAWN)) // Don't want any exploding plasmemes + ERTOperative.set_species(/datum/species/human) - if(teamSpawned) - message_admins("[ertemplate.rename_team] has spawned with the mission: [ertemplate.mission]") + //Give antag datum + var/datum/antagonist/ert/ert_antag - //Open the Armory doors - if(ertemplate.opendoors) - for(var/obj/machinery/door/poddoor/ert/door in GLOB.airlocks) - door.open() - CHECK_TICK - return TRUE + if(numagents == 1) + ert_antag = new ertemplate.leader_role + 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 + else + return FALSE return - //Abductors /datum/admins/proc/makeAbductorTeam() new /datum/round_event/ghost_role/abductor @@ -493,5 +387,3 @@ /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/pray.dm b/code/modules/admin/verbs/pray.dm index 05dccfc0ca75..ca7d208e7a7a 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -38,10 +38,6 @@ 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 5ee0df0ec0f5..18a572c7477b 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, TYPE_PROC_REF(/mob/living/carbon, monkeyize)) + INVOKE_ASYNC(H, /mob/living/carbon.proc/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 537afd8d4ff5..aa1717230c48 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -101,7 +101,6 @@ 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 @@ -182,10 +181,6 @@ 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" @@ -198,7 +193,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 && nukieonly) + if(!creator_op) return switch(borg_to_spawn) @@ -215,9 +210,8 @@ if(prob(50)) brainfirstname = pick(GLOB.first_names_female) var/brainopslastname = pick(GLOB.last_names) - 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 + 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 var/brainopsname = "[brainfirstname] [brainopslastname]" R.mmi.name = "[initial(R.mmi.name)]: [brainopsname]" @@ -230,8 +224,7 @@ var/datum/antagonist/nukeop/new_borg = new() new_borg.send_to_spawnpoint = FALSE - if(nukieonly) - R.mind.add_antag_datum(new_borg,creator_op.nuke_team) + 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 ca67926c0ee8..a5e925546de5 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_REF(admin_equip)) + .["Equip"] = CALLBACK(src,.proc/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 9a5b95d21184..8d0149bf7950 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_REF(try_spawn_machine)), 30) + addtimer(CALLBACK(src, .proc/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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 4efd2b0ab162..067d3d563ed7 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_REF(clear_mind_control)), mind_control_duration) + addtimer(CALLBACK(src, .proc/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 8b3696d6a8d4..e950a07d065e 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_REF(free_access)) + RegisterSignal(owner, COMSIG_MOB_ALLOWED, .proc/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 d37470394571..41a545b851a7 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_REF(zap)), rand(30, 100)) + addtimer(CALLBACK(src, .proc/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 13cc86c0411b..73b78d2e3d4d 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_REF(finish_replace_eyes)), rand(100, 200)) + addtimer(CALLBACK(src, .proc/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_REF(finish_replace_limb), body_zone), rand(150, 300)) + addtimer(CALLBACK(src, .proc/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_REF(keep_replacing_blood)), 30) + addtimer(CALLBACK(src, .proc/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 4f17cd26eb05..cb3bb50b1ed0 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_REF(clear_mind_control)), mind_control_duration) + addtimer(CALLBACK(src, .proc/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 a3d45b11b99d..fe8b06ac77a3 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_REF(to_chat), owner, "A massive stomachache overcomes you."), 150) - addtimer(CALLBACK(src, PROC_REF(vomit_plasma)), 200) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, owner, "A massive stomachache overcomes you."), 150) + addtimer(CALLBACK(src, .proc/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 d66f43260bb2..269a2cefc233 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_REF(quantum_swap)), rand(600, 2400)) + addtimer(CALLBACK(src, .proc/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 00e9ba6f4e6f..ab636f7d0e8e 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_REF(doMobToLoc), place, target), 80) + addtimer(CALLBACK(src, .proc/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_REF(doPadToLoc), place), 80) + addtimer(CALLBACK(src, .proc/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 65fd955a0095..871cb9c82d6a 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_REF(on_examinate)) + RegisterSignal(new_body, COMSIG_MOB_EXAMINATE, .proc/on_examinate) /datum/antagonist/ashwalker/on_gain() . = ..() - RegisterSignal(owner.current, COMSIG_MOB_EXAMINATE, PROC_REF(on_examinate)) + RegisterSignal(owner.current, COMSIG_MOB_EXAMINATE, .proc/on_examinate) /datum/antagonist/ashwalker/on_removal() . = ..() diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index 3255b4aea69c..7fb5cc39016c 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_REF(victory)), 450) + addtimer(CALLBACK(src, .proc/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 01039a77623d..2cd61b93e7f8 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, TYPE_PROC_REF(/obj/effect/mine/pickup/bloodbath, mineEffect), H) //could use moving out from the mine + INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/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 41e8b644fa53..ca9b6af1b106 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_REF(return_control), src.loc), delay) + addtimer(CALLBACK(src, .proc/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_REF(release_host)), 100) + addtimer(CALLBACK(src, .proc/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_REF(assume_control)), delay) + addtimer(CALLBACK(src, .proc/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_REF(leap_end))) + throw_at(A, MAX_BORER_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/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_REF(infect_victim), C), 15) + addtimer(CALLBACK(src, .proc/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 7d9279f1390d..e1670ebcfb2c 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, TYPE_PROC_REF(/datum/action/changeling/sting, try_to_sting), ling, A) + INVOKE_ASYNC(chosen_sting, /datum/action/changeling/sting.proc/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_REF(stingAtom)) + RegisterSignal(C, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), .proc/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_REF(admin_restore_appearance)) + .["Transform to initial appearance."] = CALLBACK(src,.proc/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 07421956bb59..58ed367a4d98 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_REF(dissolve_handcuffs), user, O), 30) + addtimer(CALLBACK(src, .proc/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_REF(dissolve_legcuffs), user, O), 30) + addtimer(CALLBACK(src, .proc/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_REF(dissolve_straightjacket), user, S), 30) + addtimer(CALLBACK(src, .proc/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_REF(open_closet), user, C), 70) + addtimer(CALLBACK(src, .proc/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_REF(dissolve_cocoon), user, C), 25) //Very short because it's just webs + addtimer(CALLBACK(src, .proc/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 6a6ef54a68ed..af150cd026ef 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_REF(revive), user) + INVOKE_ASYNC(src, .proc/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_REF(ready_to_regenerate), user), LING_FAKEDEATH_TIME, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/ready_to_regenerate, user), LING_FAKEDEATH_TIME, TIMER_UNIQUE) return TRUE /datum/action/changeling/fakedeath/proc/revive(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 58714f234ee8..df8cb208cff7 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_REF(tentacle_grab), H, C)) + C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/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_REF(tentacle_stab), H, C)) + C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/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 7fca2f89425a..8844c5844c36 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_REF(muscle_loop), user) + INVOKE_ASYNC(src, .proc/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 033b71b6df5b..d919b7f4ec73 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_REF(remove_fake), target, blade), 600) + addtimer(CALLBACK(src, .proc/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_REF(hallucination_time), target), rand(300,600)) + addtimer(CALLBACK(src, .proc/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 26f0bb1d81ea..ea902bc032a3 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, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), 2400, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(H,/atom/.proc/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, TYPE_PROC_REF(/atom, cut_overlay), forbearance), 100) + addtimer(CALLBACK(L, /atom/proc/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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, .proc/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 e7f37d37f4a6..42964b262011 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_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)) + .["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) /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_REF(rise), B.current), 200) + addtimer(CALLBACK(src, .proc/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_REF(ascend), B.current), 200) + addtimer(CALLBACK(src, .proc/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 10a6125d152d..1dae8a6a649f 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, TYPE_PROC_REF(/mob, reckon), final), 10) + addtimer(CALLBACK(B.current, /mob/.proc/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, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) + addtimer(CALLBACK(attached_action.owner, /mob.proc/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_REF(reset_blood_target),C.cult_team), 900, TIMER_STOPPABLE) + C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, .proc/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, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) + addtimer(CALLBACK(owner, /mob.proc/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_REF(reset_blood_target),C.cult_team), base_cooldown, TIMER_STOPPABLE) - addtimer(CALLBACK(src, PROC_REF(reset_button)), base_cooldown) + 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) //////// 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, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) + addtimer(CALLBACK(caller, /mob.proc/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 b09b7d989758..7323160deceb 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, 'sound/weapons/effects/deflect.ogg', 100, TRUE) + 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) 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, 'sound/weapons/effects/deflect.ogg', 100, TRUE) + 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) 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_REF(stop_spinning)), 50) + addtimer(CALLBACK(src, .proc/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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/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, 'sound/weapons/effects/deflect.ogg', 100, TRUE) + 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) return TRUE else playsound(src, 'sound/weapons/parry.ogg', 100, TRUE) @@ -777,10 +777,10 @@ qdel(src) return charging = TRUE - INVOKE_ASYNC(src, PROC_REF(charge), user) + INVOKE_ASYNC(src, .proc/charge, user) if(do_after(user, 90, target = user)) firing = TRUE - INVOKE_ASYNC(src, PROC_REF(pewpew), user, params) + INVOKE_ASYNC(src, .proc/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, TYPE_PROC_REF(/obj/item/shield/mirror, readd)), 450) + addtimer(CALLBACK(src, /obj/item/shield/mirror.proc/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 5bf8f9dc2779..8c60f724215d 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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/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 2829141405dd..ee9a883aad34 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, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) + addtimer(CALLBACK(owner, /mob.proc/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, TYPE_PROC_REF(/mob, break_do_after_checks), health, action_interrupt))) + if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, /mob.proc/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 35e6f7172d8f..17ffdcdb42f8 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, TYPE_PROC_REF(/atom, update_atom_colour)), 5) + addtimer(CALLBACK(src, /atom/proc/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, TYPE_PROC_REF(/atom, update_atom_colour)), 5) + addtimer(CALLBACK(src, /atom/proc/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_REF(close_portal)), 600, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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_REF(lose_density)), 3000, TIMER_STOPPABLE) + density_timer = addtimer(CALLBACK(src, .proc/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_REF(recharge)), 50) + addtimer(CALLBACK(src, .proc/recharge), 50) /obj/effect/rune/wall/proc/recharge() recharging = FALSE @@ -970,11 +970,11 @@ structure_check() searches for nearby cultist structures required for the invoca if(ishuman(M)) if(!iscultist(M)) AH.remove_hud_from(M) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(hudFix), M), duration) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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, TYPE_PROC_REF(/atom, remove_alt_appearance),"human_apoc",TRUE), duration) + addtimer(CALLBACK(M,/atom/.proc/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, TYPE_PROC_REF(/atom, remove_alt_appearance),"mob_apoc",TRUE), duration) + addtimer(CALLBACK(M,/atom/.proc/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, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), duration) + addtimer(CALLBACK(M,/atom/.proc/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 9b9ba7c4d69d..2009fca1d757 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_REF(admin_toggle_ascendable)) + .["Toggle ascendable"] = CALLBACK(src,.proc/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 21446d2661d8..d21f8880d97a 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, TYPE_PROC_REF(/mob/living, set_varspeed), 0), 30) + addtimer(CALLBACK(src, /mob/living/proc/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 0faab8e003cf..f5a93677b4e1 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), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) + INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), /datum/antagonist/devil/proc/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 370db73c2f12..7183ed5455e9 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, TYPE_PROC_REF(/mob/camera/disease, pick_name)) + INVOKE_ASYNC(virus, /mob/camera/disease/proc/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 101075df34ba..55f869b3a71a 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_REF(infect_random_patient_zero)), freemove_time, TIMER_STOPPABLE) + freemove_end_timerid = addtimer(CALLBACK(src, .proc/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_REF(follow_mob)) + RegisterSignal(L, COMSIG_MOVABLE_MOVED, .proc/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_REF(notify_adapt_ready)), adaptation_cooldown) + addtimer(CALLBACK(src, .proc/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 f28bd9e428bb..c12fcb8eaf27 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/deathsquad = FALSE + var/rip_and_tear = FALSE var/equip_ert = TRUE var/forge_objectives_for_ert = TRUE can_elimination_hijack = ELIMINATION_PREVENT @@ -28,20 +28,6 @@ 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 @@ -52,56 +38,15 @@ /datum/antagonist/ert/proc/update_name() owner.current.fully_replace_character_name(owner.current.real_name,"[role] [pick(name_source)]") -/datum/antagonist/ert/greet() - if(!ert_team) - return - - to_chat(owner, "You are the [name].") - - 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/deathsquad/New() + . = ..() + name_source = GLOB.commando_names -/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 +/datum/antagonist/ert/deathsquad/apply_innate_effects(mob/living/mob_override) + ADD_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) -// Standard ERT +/datum/antagonist/ert/deathsquad/remove_innate_effects(mob/living/mob_override) + REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) /datum/antagonist/ert/security // kinda handled by the base template but here for completion @@ -129,30 +74,43 @@ /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" - deathsquad = TRUE + rip_and_tear = TRUE -/datum/antagonist/ert/deathsquad/leader - name = "Deathsquad Officer" - outfit = /datum/outfit/centcom/death_commando - role = "Officer" +/datum/antagonist/ert/medic/inquisitor + outfit = /datum/outfit/centcom/ert/medic/inquisitor -/datum/antagonist/ert/deathsquad/New() +/datum/antagonist/ert/medic/inquisitor/on_gain() . = ..() - name_source = GLOB.commando_names + 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/security/inquisitor + outfit = /datum/outfit/centcom/ert/security/inquisitor -/datum/antagonist/ert/deathsquad/remove_innate_effects(mob/living/mob_override) - REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) +/datum/antagonist/ert/security/inquisitor/on_gain() + . = ..() + 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 + +/datum/antagonist/ert/chaplain/on_gain() + . = ..() + owner.holy_role = HOLY_ROLE_PRIEST -// Janitor +/datum/antagonist/ert/commander/inquisitor + outfit = /datum/outfit/centcom/ert/commander/inquisitor + +/datum/antagonist/ert/commander/inquisitor/on_gain() + . = ..() + owner.holy_role = HOLY_ROLE_PRIEST /datum/antagonist/ert/janitor role = "Janitor" @@ -162,7 +120,10 @@ role = "Heavy Duty Janitor" outfit = /datum/outfit/centcom/ert/janitor/heavy -// Intern +/datum/antagonist/ert/deathsquad/leader + name = "Deathsquad Officer" + outfit = /datum/outfit/centcom/death_commando + role = "Officer" /datum/antagonist/ert/intern name = "CentCom Intern" @@ -175,13 +136,45 @@ outfit = /datum/outfit/centcom/centcom_intern/leader role = "Head Intern" -/datum/antagonist/ert/intern/unarmed - outfit = /datum/outfit/centcom/centcom_intern/unarmed +/datum/antagonist/ert/clown + role = "Clown" + outfit = /datum/outfit/centcom/ert/clown -/datum/antagonist/ert/intern/leader/unarmed - outfit = /datum/outfit/centcom/centcom_intern/leader/unarmed +/datum/antagonist/ert/clown/New() + . = ..() + name_source = GLOB.clown_names -// Marine +/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) /datum/antagonist/ert/marine name = "Marine Commander" @@ -203,340 +196,8 @@ 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 Sonnensöldner" - outfit = /datum/outfit/centcom/ert/solgov + name = "SolGov Sonnensoldner" + outfit = /datum/outfit/solgov/sonnensoldner random_names = FALSE - 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" + role = "SolGov Sonnensoldner" diff --git a/code/modules/antagonists/gang/gang.dm b/code/modules/antagonists/gang/gang.dm index 8f73b93f8fd4..f9264d0bfd9b 100644 --- a/code/modules/antagonists/gang/gang.dm +++ b/code/modules/antagonists/gang/gang.dm @@ -198,9 +198,11 @@ roundend_category = "The Tunnel Snakes" gang_name = "Tunnel Snakes" gang_id = "TS" - acceptable_clothes = list(/obj/item/clothing/suit/jacket, + acceptable_clothes = list(/obj/item/clothing/under/pants/classicjeans, + /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 ddc895060b0c..c87faa0941b8 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_REF(disrupt)) + RegisterSignal(user, signalCache, .proc/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 d0019eb19cc2..9aaa8b989c0d 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_REF(actually_explode)), 100) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/datum/controller/subsystem/ticker, station_explosion_detonation),src)) - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(KillEveryoneOnZLevel), virtual_z()) + 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()) /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_REF(really_actually_explode)), 110) + addtimer(CALLBACK(src, .proc/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 9f807d9521e7..ab8202527abc 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_REF(admin_send_to_base)) - .["Tell code"] = CALLBACK(src, PROC_REF(admin_tell_code)) + .["Send to base"] = CALLBACK(src,.proc/admin_send_to_base) + .["Tell code"] = CALLBACK(src,.proc/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_REF(nuketeam_name_assign)), 1) + addtimer(CALLBACK(src, .proc/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 new file mode 100644 index 000000000000..a258d6e68e76 --- /dev/null +++ b/code/modules/antagonists/official/official.dm @@ -0,0 +1,42 @@ +/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 76da8304df09..2487260dd5c1 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_REF(reset_inhibit)), 30) + addtimer(CALLBACK(src, .proc/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_REF(try_reform)), 600) + addtimer(CALLBACK(src, .proc/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 b235199ed750..edccf0775928 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_REF(overload), T, user) + INVOKE_ASYNC(src, .proc/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_REF(overload_shock), L, user), 20) + addtimer(CALLBACK(src, .proc/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_REF(defile), T) + INVOKE_ASYNC(src, .proc/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_REF(malfunction), T, user) + INVOKE_ASYNC(src, .proc/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_REF(blight), T, user) + INVOKE_ASYNC(src, .proc/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 cd1b40957d82..04381477802a 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_REF(cure)), 100) + addtimer(CALLBACK(src, .proc/cure), 100) else return diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 595fbb27f61a..b12050c263b7 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_REF(remove_movespeed_modifier), /datum/movespeed_modifier/slaughter), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/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 6fec09373797..48b9ecfad259 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 894023d9c194..a3e4230373d8 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_REF(handle_hearing)) + RegisterSignal(M, COMSIG_MOVABLE_HEAR, .proc/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 339cd462d5a8..0add31c60b74 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, TYPE_PROC_REF(/obj/machinery/door, hostile_lockdown), owner) - addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/door, disable_lockdown)), 900) + INVOKE_ASYNC(D, /obj/machinery/door.proc/hostile_lockdown, owner) + addtimer(CALLBACK(D, /obj/machinery/door.proc/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_REF(minor_announce), + addtimer(CALLBACK(GLOBAL_PROC, .proc/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, TYPE_PROC_REF(/datum/action/innate/ai/ranged/override_machine, animate_machine), target), 50) //kabeep! + addtimer(CALLBACK(attached_action, /datum/action/innate/ai/ranged/override_machine.proc/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, TYPE_PROC_REF(/datum/action/innate/ai/ranged/overload_machine, detonate_machine), target), 50) //kaboom! + addtimer(CALLBACK(attached_action, /datum/action/innate/ai/ranged/overload_machine.proc/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_REF(remove_transformer_image), client, I, T), 30) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/obj/machinery/light, update), FALSE) + INVOKE_ASYNC(L, /obj/machinery/light/.proc/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 d012949ba054..17e841acb5e3 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_REF(enter_check)) + RegisterSignal(empty_pod, COMSIG_ATOM_ENTERED, .proc/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_REF(returnVictim), M), (60 * 10) * 4) + addtimer(CALLBACK(src, .proc/returnVictim, M), (60 * 10) * 4) if (M.stat != DEAD) // Heal them up - gets them out of crit/soft crit. If omnizine is removed in the future, this needs to be replaced with a diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index a95ef0d1b579..01993ee5539e 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, TYPE_PROC_REF(/obj/singularity/wizard, deranged), C), 100) + addtimer(CALLBACK(src, /obj/singularity/wizard.proc/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_REF(reset), user), 10 SECONDS) + addtimer(CALLBACK(src, .proc/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 c426b953f725..8a13c5c612ed 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_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, .proc/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 14cf56d51ae0..528fd33db5d4 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_REF(admin_send_to_lair)) + .["Send to Lair"] = CALLBACK(src,.proc/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 2d5fd3efc9fc..5c1324bdcfe9 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(activate)) + INVOKE_ASYNC(src, .proc/activate) if(radio && (wire_type & WIRE_RADIO_RECEIVE)) - INVOKE_ASYNC(src, PROC_REF(activate)) + INVOKE_ASYNC(src, .proc/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 8407f1d8b1a1..ab64cdc86700 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 3b8c2c8cf7ba..40a10a168ea0 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 ? TYPE_PROC_REF(/obj/machinery/door/poddoor, open) : TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) + INVOKE_ASYNC(M, openclose ? /obj/machinery/door/poddoor.proc/open : /obj/machinery/door/poddoor.proc/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 ? TYPE_PROC_REF(/obj/machinery/door/airlock, close) : TYPE_PROC_REF(/obj/machinery/door/airlock, open)) + INVOKE_ASYNC(D, doors_need_closing ? /obj/machinery/door/airlock.proc/close : /obj/machinery/door/airlock.proc/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, TYPE_PROC_REF(/obj/machinery/door/poddoor, open)) + INVOKE_ASYNC(M, /obj/machinery/door/poddoor.proc/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, TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) + INVOKE_ASYNC(M, /obj/machinery/door/poddoor.proc/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, TYPE_PROC_REF(/obj/machinery/sparker, ignite)) + INVOKE_ASYNC(M, /obj/machinery/sparker.proc/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, TYPE_PROC_REF(/obj/machinery/flasher, flash)) + INVOKE_ASYNC(M, /obj/machinery/flasher.proc/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, TYPE_PROC_REF(/obj/machinery/power/shieldwallgen, toggle)) + INVOKE_ASYNC(machine, /obj/machinery/power/shieldwallgen.proc/toggle) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 20) diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 8fe788f79ca7..637157682a15 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -29,7 +29,7 @@ flashing = flash . = ..() if(flash) - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 5) + addtimer(CALLBACK(src, /atom/.proc/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_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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_REF(cooldown)), flashcd * 2) + addtimer(CALLBACK(src, .proc/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_REF(cooldown)), flashcd) + addtimer(CALLBACK(src, .proc/cooldown), flashcd) playsound(src, 'sound/weapons/flash.ogg', 100, TRUE) update_icon(ALL, TRUE) return TRUE diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 8dbb1dc98b61..4d2ffdac5d4e 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 72d7bfd45a30..bc8fdcc3d908 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_REF(after_rotation))) + AddComponent(/datum/component/simple_rotation, rotation_flags, after_rotation=CALLBACK(src,.proc/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_REF(check_exit)) + RegisterSignal(newloc, COMSIG_ATOM_EXITED, .proc/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_REF(refreshBeam)) + INVOKE_ASYNC(src, .proc/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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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, TYPE_PROC_REF(/obj/item/assembly/infra, trigger_beam), AM, get_turf(src)) + INVOKE_ASYNC(master, /obj/item/assembly/infra/proc/trigger_beam, AM, get_turf(src)) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 25b6ce470466..bf9353a658d9 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_REF(triggered), H) + INVOKE_ASYNC(src, .proc/triggered, H) H.visible_message( "[H] accidentally steps on [src].", "You accidentally step on [src]" ) else if(ismouse(MM)) - INVOKE_ASYNC(src, PROC_REF(triggered), MM) + INVOKE_ASYNC(src, .proc/triggered, MM) else if(AM.density) // For mousetrap grenades, set off by anything heavy - INVOKE_ASYNC(src, PROC_REF(triggered), AM) + INVOKE_ASYNC(src, .proc/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 0bfac86ee0df..0ff3fadae733 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_REF(signal)) + INVOKE_ASYNC(src, .proc/signal) . = TRUE if("freq") frequency = unformat_frequency(params["freq"]) diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index 84f1a5040015..d154121956c9 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_REF(pulse), 0), 10) + addtimer(CALLBACK(src, .proc/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_REF(pulse), 0), 10) + addtimer(CALLBACK(src, .proc/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 5fbc239e45b8..9f1073c9c9f0 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_REF(send_assets_slow), C, preload), 1 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(send_assets_slow), C, preload), 1 SECONDS) + addtimer(CALLBACK(src, .proc/send_assets_slow, C, preload), 1 SECONDS) /** @@ -137,7 +137,7 @@ client.sent_assets[new_asset_name] = ACI.hash - addtimer(CALLBACK(client, TYPE_PROC_REF(/client, asset_cache_update_json)), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(client, /client/proc/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 041f09cddc9b..428e8b5a6d18 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 40691d8e5079..924e90b4767c 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 | RESET_COLOR + appearance_flags = TILE_BOUND 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 1f7b18ead917..0d93d554c47f 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_REF(broadcast_status)), 2) + addtimer(CALLBACK(src, .proc/broadcast_status), 2) if(!("status" in signal.data)) //do not update_icon update_appearance() @@ -291,6 +291,10 @@ 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 020570f34785..0631fac4856c 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_REF(finish_interact)), 10) + addtimer(CALLBACK(src, .proc/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 ad8dd9761598..1fdc91effb44 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_REF(hide_pipe)) + RegisterSignal(src, COMSIG_OBJ_HIDE, .proc/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 8f547335e9e0..3864bc2ada18 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_REF(run_anim), anim_up, occupant_overlay), 7, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 d3a4b115278f..d70e91b29de7 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_REF(inject)) + INVOKE_ASYNC(src, .proc/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_REF(broadcast_status)), 2) + addtimer(CALLBACK(src, .proc/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 ac7c85cb2fe8..b7fca049449c 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm @@ -34,6 +34,10 @@ 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 d452f11c11e7..61d909c7fc71 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm @@ -37,6 +37,10 @@ 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 40a049064148..57e9b6ea797b 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold4w.dm @@ -35,6 +35,10 @@ 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 60379cb3a57e..debbe9350c14 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm @@ -28,6 +28,10 @@ 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 a29d48657446..f7eeeb9f7f96 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_REF(OnButtonPressed)) + RegisterSignal(SSdcs,COMSIG_GLOB_BUTTON_PRESSED, .proc/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_REF(reset_plane)),10) + addtimer(CALLBACK(src,.proc/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 77c655c38247..abf9ba4f5e16 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_REF(reset_flag)) //just in case CTF has some map hazards (read: chasms). + RegisterSignal(src, COMSIG_PARENT_PREQDELETED, .proc/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_REF(clear_cooldown), body.ckey), respawn_cooldown, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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_REF(floor_vanish)), 1) + addtimer(CALLBACK(src, .proc/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_REF(floor_vanish)), 1) + addtimer(CALLBACK(src, .proc/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_REF(floor_vanish)), 1) + addtimer(CALLBACK(src, .proc/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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 92f8a61ab4d7..0caf1d7c4e3d 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_REF(create)) + INVOKE_ASYNC(src, .proc/create) else if(ghost_usable) GLOB.poi_list |= src LAZYADD(GLOB.mob_spawners[name], src) @@ -307,9 +307,6 @@ 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 @@ -329,8 +326,6 @@ 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" @@ -396,9 +391,6 @@ 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" @@ -413,14 +405,10 @@ /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 @@ -477,8 +465,8 @@ name = "Beach Bum" glasses = /obj/item/clothing/glasses/sunglasses r_pocket = /obj/item/storage/wallet/random - l_pocket = /obj/item/reagent_containers/food/snacks/pizzaslice/dank - uniform = /obj/item/clothing/under/pants/jeans + l_pocket = /obj/item/reagent_containers/food/snacks/pizzaslice/dank; + uniform = /obj/item/clothing/under/pants/youngfolksjeans 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 a643be115aab..189fe1ebfd11 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, TYPE_PROC_REF(/atom/movable, setDir),SOUTH),0) + addtimer(CALLBACK(AM,/atom/movable.proc/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 a4b9098c77a1..9fe39716543d 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_REF(effect), user, .), 1 SECONDS) + addtimer(CALLBACK(src, .proc/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 914a1f2828c7..695692ed331f 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_REF(respawn)), 3 MINUTES) + addtimer(CALLBACK(src, .proc/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 26c6b4823dce..35396ddded18 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 bef302de217c..fcefdef265fe 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(do_hand_stuff), M) + INVOKE_ASYNC(src, .proc/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 db4453bfa6b6..c27372260789 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_REF(balloon_alert_perform), viewer, text) + INVOKE_ASYNC(src, .proc/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_REF(remove_image_from_client), balloon_alert, viewer_client), BALLOON_TEXT_TOTAL_LIFETIME(duration_mult)) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 700485eb1d7f..74ac431c5fe9 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_REF(post_login)) + li_cb = CALLBACK(src, .proc/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 3ddc15dfa33b..e7b13006a7a7 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -139,6 +139,12 @@ 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." @@ -211,6 +217,12 @@ 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 c0bcb1bd6f69..38f1fea99906 100644 --- a/code/modules/cargo/bounties/medical.dm +++ b/code/modules/cargo/bounties/medical.dm @@ -45,3 +45,15 @@ 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 8af6b567fef5..1282d52b5a58 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -15,6 +15,7 @@ unit_name = "riot shield" export_types = list(/obj/item/shield/riot) + /datum/export/gear/mask/breath cost = 2 unit_name = "breath mask" @@ -26,6 +27,7 @@ export_types = list(/obj/item/clothing/mask/gas) include_subtypes = FALSE + /datum/export/gear/space/helmet cost = 75 unit_name = "space helmet" @@ -49,6 +51,7 @@ unit_name = "Syndicate space suit" export_types = list(/obj/item/clothing/suit/space/syndicate) + /datum/export/gear/radhelmet cost = 50 unit_name = "radsuit hood" @@ -79,6 +82,17 @@ 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 560fc46668de..42aea5437c4b 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, TYPE_PROC_REF(/atom, setClosed)), 50) + addtimer(CALLBACK(src, /atom/.proc/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 33a5ee37be02..9bb96a14be5c 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -22,15 +22,6 @@ /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 154dce436ee7..953196411f9e 100644 --- a/code/modules/cargo/packs/civilian.dm +++ b/code/modules/cargo/packs/civilian.dm @@ -53,20 +53,6 @@ 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." @@ -286,6 +272,7 @@ 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 5bce9871719a..4cdebc0bdcb4 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -213,21 +213,3 @@ 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/gun.dm b/code/modules/cargo/packs/gun.dm index 6ca715889855..b91fe38e0390 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -39,18 +39,12 @@ /obj/item/gun/ballistic/revolver) /datum/supply_pack/gun/detrevolver - name = "Hunter's Pride Detective Revolver crate" + name = "Revolver crate" desc = "Contains two concealable Solarian revolvers, chambered in .38." cost = 2000 contains = list(/obj/item/gun/ballistic/revolver/detective, /obj/item/gun/ballistic/revolver/detective) -/datum/supply_pack/gun/cattlemanrevolver - name = "Cattleman Revolver crate" - desc = "Contains two concealable Cattleman revolvers, chambered in .45 ACP." - cost = 2500 - contains = list(/obj/item/gun/ballistic/revolver/cattleman, - /obj/item/gun/ballistic/revolver/cattleman) /* diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index 3d5389e23327..2afbe0e85c2f 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 = "Fresh Water Supply Crate" + name = "Water Tank Crate" desc = "Contains a tank of dihydrogen monoxide. Sounds dangerous." - cost = 500 + cost = 600 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 Fresh Water Supply Crate" + name = "Large Water Tank Crate" desc = "Contains a high-capacity water tank. Useful for botany or other service jobs." - cost = 1500 + cost = 1200 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 \"Phorid's Bane\"." + desc = "Contains a tank of firefighting foam. Also known as \"plasmaman'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 16b43704df58..e1568ae1adee 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_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 + 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 else if (style == STYLE_SEETHROUGH) open_pod(src) else - 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 + 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 /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_REF(SetReverseIcon)), delays[POD_LEAVING]/2) //Finish up the pod's duties after a certain amount of time + addtimer(CALLBACK(src, .proc/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_REF(startExitSequence), holder), delays[POD_LEAVING]*(4/5)) //Finish up the pod's duties after a certain amount of time + addtimer(CALLBACK(src, .proc/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_REF(preReturn), holder), delays[POD_LEAVING] * 0.2) //Start to leave a bit after closing for cinematic effect + addtimer(CALLBACK(src, .proc/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_REF(handleReturnAfterDeparting), holder), 15) //Finish up the pod's duties after a certain amount of time + addtimer(CALLBACK(src, .proc/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_REF(playFallingSound)), soundStartTime) - addtimer(CALLBACK(src, PROC_REF(beginLaunch), pod.effectCircle), pod.delays[POD_TRANSIT]) + addtimer(CALLBACK(src, .proc/playFallingSound), soundStartTime) + addtimer(CALLBACK(src, .proc/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_REF(endLaunch)), pod.delays[POD_FALLING], TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/obj/effect/supplypod_smoke, drawSelf), i), time, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation + 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 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 11fd10229e5e..b5ae8023bb4d 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_REF(endLaunch)), 33)//wait 3.3 seconds (time it takes for supplypod to land), then update icon + addtimer(CALLBACK(src, .proc/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 b569faf75b10..6357229e02db 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_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) + 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) /datum/client_colour/thirdeye colour = list( diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 334818c0e1f9..300cbc809cfc 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_REF(_Topic), hsrc, href, href_list))) + if(hsrc && hsrc != holder && DEFAULT_TRY_QUEUE_VERB(VERB_CALLBACK(src, .proc/_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_REF(check_panel_loaded)), 30 SECONDS) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/datum/asset_transport, send_assets_slow), src, SSassets.transport.preload), 5 SECONDS) + addtimer(CALLBACK(SSassets.transport, /datum/asset_transport.proc/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 042315cc981f..671c0efe9602 100644 --- a/code/modules/client/loadout/loadout_general.dm +++ b/code/modules/client/loadout/loadout_general.dm @@ -42,10 +42,6 @@ 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 @@ -82,10 +78,6 @@ 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 @@ -131,14 +123,6 @@ 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" @@ -179,8 +163,3 @@ /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 ec9fc916723e..e2800a87e9e1 100644 --- a/code/modules/client/loadout/loadout_suit.dm +++ b/code/modules/client/loadout/loadout_suit.dm @@ -73,14 +73,6 @@ 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 1410bdb0fe4d..4f88e6d1a905 100644 --- a/code/modules/client/loadout/loadout_uniform.dm +++ b/code/modules/client/loadout/loadout_uniform.dm @@ -91,6 +91,10 @@ 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 @@ -115,6 +119,10 @@ 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 @@ -233,10 +241,6 @@ 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 e73a186087f3..f1fe218b175b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -16,8 +16,6 @@ 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 @@ -611,7 +609,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("spider_legs" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN - dat += "

    Extra Legs

    " + dat += "

    Spider Extra Legs Variant

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

    Spinneret

    " + dat += "

    Spider Spinneret Markings

    " dat += "[features["spider_spinneret"]]
    " @@ -632,6 +630,18 @@ 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 @@ -1099,7 +1109,6 @@ 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
    " @@ -1897,6 +1906,18 @@ 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 @@ -1984,15 +2005,6 @@ 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 7800a7b57f33..26cea413adb3 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_REF(announce_conflict), notadded), 5 SECONDS) + addtimer(CALLBACK(src, .proc/announce_conflict, notadded), 5 SECONDS) /datum/preferences/proc/announce_conflict(list/notadded) to_chat(parent, "KEYBINDING CONFLICT!!!\n\ @@ -161,7 +161,6 @@ 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) @@ -266,7 +265,6 @@ 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)) @@ -306,7 +304,6 @@ 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) @@ -506,51 +503,52 @@ 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["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["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"])) all_quirks = SANITIZE_LIST(all_quirks) diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm deleted file mode 100644 index 6d2e11ea0010..000000000000 --- a/code/modules/clothing/factions/gezena.dm +++ /dev/null @@ -1,276 +0,0 @@ -//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 8245a3333e4c..f4c2a5a27f4e 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() + var/obj/item/clothing/glasses/blindfold/eyepatch/double_patch = new/obj/item/clothing/glasses/blindfold/eyepatch + double_patch.forceMove(user.drop_location()) to_chat(user, "You combine the eyepatches with a knot.") - qdel(old_patch) - qdel(src) - user.put_in_hands(double_patch) + old_patch.Destroy() + Destroy() /obj/item/clothing/glasses/monocle name = "monocle" diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index 68f64cdd515e..807bfb217516 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -4,6 +4,7 @@ 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 291b1c1b25b6..119312c6902f 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_REF(Shocked)) + RegisterSignal(user, COMSIG_LIVING_SHOCK_PREVENTED, .proc/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_REF(Shocked)) + RegisterSignal(user, COMSIG_LIVING_SHOCK_PREVENTED, .proc/Shocked) /obj/item/clothing/gloves/color/yellow/sprayon/tape/Shocked(mob/user) if(prob(50)) //Fear the unpredictable @@ -202,12 +202,6 @@ 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 63553ca12af7..2c6139e54169 100644 --- a/code/modules/clothing/head/berets.dm +++ b/code/modules/clothing/head/berets.dm @@ -162,11 +162,6 @@ 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" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index e6400198864e..2cd8c28602c8 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, attached_light.on ? attached_light.toggle_on_sound : attached_light.toggle_off_sound, 100, TRUE) + playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) update_helmlight() /obj/item/clothing/head/helmet/proc/update_helmlight() @@ -559,17 +559,11 @@ 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 ae7ecd5b121e..06bdf4de0e7f 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -184,12 +184,6 @@ 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." @@ -254,7 +248,7 @@ /obj/item/clothing/head/warden/drill/equipped(mob/M, slot) . = ..() if (slot == ITEM_SLOT_HEAD) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(M, COMSIG_MOB_SAY, .proc/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 9df87d4a5f51..73261bf69ebb 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 = "A headband with a pair of faux rabbit ears." + desc = "Wearing these makes you look useless, and only good for your sex appeal." icon_state = "bunny" dynamic_hair_suffix = "" @@ -313,6 +313,11 @@ 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." @@ -381,7 +386,7 @@ /obj/item/clothing/head/frenchberet/equipped(mob/M, slot) . = ..() if (slot == ITEM_SLOT_HEAD) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) @@ -418,6 +423,11 @@ 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." @@ -466,11 +476,11 @@ icon_state = "JackFrostHat" item_state = "JackFrostHat" -/obj/item/clothing/head/gorlexcap +/obj/item/clothing/head/aclfcap name = "2nd Battlegroup peaked cap" - desc = "A cap worn by officers of the Gorlex Marauders 2nd Battlegroup." - icon_state = "gorlexcap" - item_state = "gorlexcap" + desc = "A cap worn by officers of the Gorlex Marauders 2nd Battlegroup, or as they say, the ACLF." + icon_state = "aclfcap" + item_state = "aclfcap" 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 f0ef95aca729..94cd299b3cc0 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -182,6 +182,9 @@ 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." @@ -320,7 +323,7 @@ /obj/item/clothing/head/foilhat/Initialize(mapload) . = ..() if(!warped) - AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, PROC_REF(warp_up))) + AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, .proc/warp_up)) else warp_up() diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index bc2036523bd7..dd689223380c 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -137,13 +137,6 @@ 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 739e0f832faa..f4e8ca45f697 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_REF(handle_speech)) + RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/outfits/ert/nanotrasen_ert.dm b/code/modules/clothing/outfits/ert.dm similarity index 72% rename from code/modules/clothing/outfits/ert/nanotrasen_ert.dm rename to code/modules/clothing/outfits/ert.dm index 6fb533504715..e3f90d1070b5 100644 --- a/code/modules/clothing/outfits/ert/nanotrasen_ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -1,4 +1,3 @@ -// this is where the base ERT outfit goes /datum/outfit/centcom/ert name = "ERT Common" @@ -7,18 +6,19 @@ 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/human, visualsOnly = FALSE) +/datum/outfit/centcom/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return - var/obj/item/card/id/id = human.wear_id - if(id) - id.registered_name = human.real_name - id.assignment = id_role - id.update_label() + 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() ..() /datum/outfit/centcom/ert/commander @@ -26,16 +26,14 @@ 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/melee/baton/loaded=1,\ + /obj/item/gun/energy/e_gun=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) ..() @@ -60,13 +58,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/storage/box/handcuffs=1,\ + /obj/item/gun/energy/e_gun/stun=1,\ /obj/item/melee/baton/loaded=1) /datum/outfit/centcom/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -82,29 +80,28 @@ /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/melee/baton/loaded=1,\ + /obj/item/gun/energy/pulse/carbine/loyalpin=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) ..() @@ -130,7 +127,6 @@ 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 @@ -138,10 +134,9 @@ 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) ..() @@ -161,7 +156,6 @@ /obj/item/gun/energy/pulse/pistol/loyalpin=1,\ /obj/item/construction/rcd/combat=1) -// official /datum/outfit/centcom/centcom_official name = "CentCom Official" @@ -196,6 +190,67 @@ 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" @@ -214,8 +269,6 @@ /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) ..() @@ -236,6 +289,35 @@ /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" @@ -251,12 +333,6 @@ 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) @@ -277,14 +353,6 @@ 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" @@ -304,8 +372,6 @@ 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) ..() @@ -353,8 +419,6 @@ 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) ..() @@ -382,8 +446,6 @@ 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) ..() @@ -393,88 +455,3 @@ 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/frontiersmen_ert.dm b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm deleted file mode 100644 index db934aaa9761..000000000000 --- a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm +++ /dev/null @@ -1,60 +0,0 @@ -/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 deleted file mode 100644 index 18b611d1183d..000000000000 --- a/code/modules/clothing/outfits/ert/indie_ert.dm +++ /dev/null @@ -1,88 +0,0 @@ -/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 deleted file mode 100644 index 05d4f22eb69a..000000000000 --- a/code/modules/clothing/outfits/ert/inteq_ert.dm +++ /dev/null @@ -1,53 +0,0 @@ -/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 deleted file mode 100644 index 6ec68e0799ca..000000000000 --- a/code/modules/clothing/outfits/ert/minutemen_ert.dm +++ /dev/null @@ -1,126 +0,0 @@ -/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/solgov_ert.dm b/code/modules/clothing/outfits/ert/solgov_ert.dm deleted file mode 100644 index fbae8101728d..000000000000 --- a/code/modules/clothing/outfits/ert/solgov_ert.dm +++ /dev/null @@ -1,38 +0,0 @@ -/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 deleted file mode 100644 index 5ec318f41d24..000000000000 --- a/code/modules/clothing/outfits/ert/syndicate_ert.dm +++ /dev/null @@ -1,164 +0,0 @@ -/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 deleted file mode 100644 index b9fc26afeff1..000000000000 --- a/code/modules/clothing/outfits/gezena.dm +++ /dev/null @@ -1,17 +0,0 @@ -/datum/outfit/job/gezena - -/datum/outfit/job/gezena/post_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - if(visualsOnly) - return - H.faction |= list("playergezena") - -/datum/outfit/job/gezena/assistant - name = "Deckhand (PGF)" - jobtype = /datum/job/assistant - - head = /obj/item/clothing/head/gezena - uniform = /obj/item/clothing/under/gezena - suit = /obj/item/clothing/suit/toggle/gezena - gloves = /obj/item/clothing/gloves/gezena - shoes = /obj/item/clothing/shoes/combat/gezena diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 82ad3aae38d6..1d19f894f302 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -389,7 +389,7 @@ id = /obj/item/card/id/silver head = /obj/item/clothing/head/beret/lt - uniform = /obj/item/clothing/under/rank/command + 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 diff --git a/code/modules/clothing/outfits/syndicate.dm b/code/modules/clothing/outfits/syndicate.dm deleted file mode 100644 index d1ba5c1ce35b..000000000000 --- a/code/modules/clothing/outfits/syndicate.dm +++ /dev/null @@ -1,834 +0,0 @@ -//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 new file mode 100644 index 000000000000..825dd8e46c32 --- /dev/null +++ b/code/modules/clothing/outfits/vr.dm @@ -0,0 +1,41 @@ +/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 05db2331fc49..c24759933dd6 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_REF(check_trip), override=TRUE) + RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/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_REF(check_trip), override=TRUE) + RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/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_REF(still_shoed), our_guy))) + if(do_after(user, lace_time, needhand=TRUE, target=our_guy, extra_checks=CALLBACK(src, .proc/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_REF(still_shoed), our_guy))) + if(do_after(user, mod_time, needhand=TRUE, target=our_guy, extra_checks=CALLBACK(src, .proc/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, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(our_guy, /mob/living/carbon/proc/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_REF(still_shoed), user))) + if(do_after(user, lace_time, needhand=TRUE, target=src,extra_checks=CALLBACK(src, .proc/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 8d9cab360203..90e9248fbe6c 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_REF(lightUp)), 0.5 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(lightUp)), 0.5 SECONDS) + addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS) else lightCycle = 0 active = FALSE @@ -438,6 +438,26 @@ 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 6bbde7b4a4dc..9c1bf3acdc0c 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_REF(phase_2), user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, .proc/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_REF(phase_3), user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, .proc/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_REF(phase_4), user, to_turf), phase_in_ds, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, .proc/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_REF(finish_chronowalk), user, to_turf), 3, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, .proc/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 aa153b233c46..de5874c98d38 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -420,80 +420,30 @@ var/combat_slowdown = 0 //slowdown when in combat mode var/lightweight = 0 //used for flags when toggling -//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" +//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" 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/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 +/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 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" @@ -687,7 +637,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/rd/Initialize() . = ..() - RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, PROC_REF(sense_explosion)) + RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, .proc/sense_explosion) /obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot) ..() @@ -870,7 +820,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_move)) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/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 9f7afba9fb4b..e6e15c51aecc 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_REF(sense_explosion)) + RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, .proc/sense_explosion) /obj/item/clothing/head/helmet/space/plasmaman/rd/equipped(mob/living/carbon/human/user, slot) ..() diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 9a6e0687ccb5..4ea59b14384a 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 | DIGITIGRADE_VARIATION_NO_NEW_ICON + supports_variations = VOX_VARIATION /obj/item/clothing/suit/armor/vest/marine/medium name = "medium tactical armor vest" @@ -56,11 +56,6 @@ 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." @@ -148,23 +143,12 @@ desc = "A sinister looking vest of advanced armor worn over a black and red fireproof jacket. The gold collar and shoulders denote that this belongs to a high ranking syndicate officer." icon_state = "carapace_syndie" -/obj/item/clothing/suit/armor/vest/capcarapace/cybersun - name = "cybersun captain's haori" - desc = "An extraordinarily fashionable haori, utilized by cybersun captains. Weaved with armored fabric to protect the user from gunshots." - icon_state = "cybersunhaori" - /obj/item/clothing/suit/armor/vest/capcarapace/alt name = "captain's parade jacket" desc = "For when an armoured vest isn't fashionable enough." icon_state = "carapace_ntformal" item_state = "capspacesuit" -/obj/item/clothing/suit/armor/vest/capcarapace/captunic - name = "captain's parade coat" - desc = "Worn by a Captain to show their class." - icon_state = "carapace_formal" - item_state = "bio_suit" - /obj/item/clothing/suit/armor/vest/capcarapace/minutemen name = "colonial minutemen general coat" desc = "A very fancy coat used by generals of the Colonial Minutemen." diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 14f721334462..d584d07b9bfd 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -12,6 +12,7 @@ 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 f07d46420c5b..82e4d86bc3d3 100644 --- a/code/modules/clothing/suits/hoodies.dm +++ b/code/modules/clothing/suits/hoodies.dm @@ -74,43 +74,3 @@ 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 c9c0edd2def8..241b231043fe 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -22,6 +22,16 @@ body_parts_covered = CHEST|GROIN|LEGS permeability_coefficient = 0.5 +//Captain +/obj/item/clothing/suit/captunic + name = "captain's parade tunic" + desc = "Worn by a Captain to show their class." + icon_state = "captunic" + item_state = "bio_suit" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDEJUMPSUIT + allowed = list(/obj/item/disk, /obj/item/stamp, /obj/item/reagent_containers/food/drinks/flask, /obj/item/melee, /obj/item/storage/lockbox/medal, /obj/item/assembly/flash/handheld, /obj/item/storage/box/matches, /obj/item/lighter, /obj/item/clothing/mask/cigarette, /obj/item/storage/fancy/cigarettes, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + //Chef /obj/item/clothing/suit/toggle/chef name = "chef's apron" diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 24836f6f2404..8a918876dfcd 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -8,6 +8,7 @@ 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" @@ -84,6 +85,7 @@ 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 59b252a9836a..466e75b012f7 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -343,12 +343,6 @@ * 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 @@ -686,11 +680,11 @@ item_state = "DutchJacket" body_parts_covered = ARMS -/obj/item/clothing/suit/gorlex +/obj/item/clothing/suit/aclf name = "\improper 2nd Battlegroup jacket" - desc = "An armored jacket worn by the 2nd Battlegroup." + desc = "An armored jacket worn by the Gorlex Marauders 2nd Battlegroup." body_parts_covered = CHEST|GROIN|ARMS|HANDS - icon_state = "gorlexjacket" - item_state = "gorlexjacket" + icon_state = "aclfjacket" + item_state = "aclfjacket" 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 588a8f1600de..37b548a0ab72 100644 --- a/code/modules/clothing/suits/wintercoats.dm +++ b/code/modules/clothing/suits/wintercoats.dm @@ -3,28 +3,18 @@ /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 = 'icons/obj/clothing/head/winterhood.dmi' - mob_overlay_icon = 'icons/mob/clothing/head/winterhood.dmi' - icon_state = "hood_winter" + icon_state = "winterhood" body_parts_covered = HEAD cold_protection = HEAD min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT @@ -43,7 +33,7 @@ allowed = GLOB.security_wintercoat_allowed /obj/item/clothing/head/hooded/winterhood/captain - icon_state = "hood_captain" + icon_state = "winterhood_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 @@ -58,7 +48,7 @@ allowed = GLOB.security_wintercoat_allowed /obj/item/clothing/head/hooded/winterhood/security - icon_state = "hood_security" + icon_state = "winterhood_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 @@ -70,7 +60,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/medical /obj/item/clothing/head/hooded/winterhood/medical - icon_state = "hood_medical" + icon_state = "winterhood_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 @@ -80,7 +70,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/medical/paramedic /obj/item/clothing/head/hooded/winterhood/medical/paramedic - icon_state = "hood_paramedic" + icon_state = "winterhood_paramedic" /obj/item/clothing/suit/hooded/wintercoat/science name = "science winter coat" @@ -91,7 +81,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/science /obj/item/clothing/head/hooded/winterhood/science - icon_state = "hood_science" + icon_state = "winterhood_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 @@ -103,7 +93,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering /obj/item/clothing/head/hooded/winterhood/engineering - icon_state = "hood_engineer" + icon_state = "winterhood_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 @@ -113,7 +103,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering/atmos /obj/item/clothing/head/hooded/winterhood/engineering/atmos - icon_state = "hood_atmos" + icon_state = "winterhood_atmos" /obj/item/clothing/suit/hooded/wintercoat/hydro name = "hydroponics winter coat" @@ -123,7 +113,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/hydro /obj/item/clothing/head/hooded/winterhood/hydro - icon_state = "hood_hydro" + icon_state = "winterhood_hydro" /obj/item/clothing/suit/hooded/wintercoat/cargo name = "cargo winter coat" @@ -132,7 +122,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/cargo /obj/item/clothing/head/hooded/winterhood/cargo - icon_state = "hood_cargo" + icon_state = "winterhood_cargo" /obj/item/clothing/suit/hooded/wintercoat/miner name = "mining winter coat" @@ -143,7 +133,7 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/miner /obj/item/clothing/head/hooded/winterhood/miner - icon_state = "hood_miner" + icon_state = "winterhood_miner" armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) // Inteq @@ -157,24 +147,28 @@ supports_variations = KEPORI_VARIATION /obj/item/clothing/head/hooded/winterhood/security/inteq - icon_state = "hood_inteq" + icon_state = "winterhood_inteq" supports_variations = KEPORI_VARIATION -/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt +/obj/item/clothing/suit/hooded/coat/inteq 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 = "coatinteq_alt" - item_state = "coatinteq_alt" + icon_state = "hoodieinteq" + item_state = "hoodieinteq" 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/winterhood/security/inteq/alt + hoodtype = /obj/item/clothing/head/hooded/coat/inteq -/obj/item/clothing/head/hooded/winterhood/security/inteq/alt +/obj/item/clothing/head/hooded/coat/inteq name = "inteq hood" desc = "A comfortable looking brown hood." - icon_state = "hood_inteq_alt" - item_state = "hood_inteq_alt" + icon_state = "hoodinteq" + item_state = "hoodinteq" 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" @@ -189,7 +183,7 @@ allowed += GLOB.security_wintercoat_allowed /obj/item/clothing/head/hooded/winterhood/centcom - icon_state = "hood_centcom" + icon_state = "winterhood_centcom" armor = list("melee" = 35, "bullet" = 40, "laser" = 40, "energy" = 50, "bomb" = 35, "bio" = 10, "rad" = 10, "fire" = 10, "acid" = 60) // SolGov @@ -203,5 +197,5 @@ hoodtype = /obj/item/clothing/head/hooded/winterhood/solgov /obj/item/clothing/head/hooded/winterhood/solgov - icon_state = "hood_solgov" + icon_state = "winterhood_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 deleted file mode 100644 index 22c1b29976fc..000000000000 --- a/code/modules/clothing/towels.dm +++ /dev/null @@ -1,206 +0,0 @@ -/// 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 34942fb6ff8c..e3e8be62bab7 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_REF(handle_pockets_del)) + RegisterSignal(detached_pockets, COMSIG_PARENT_QDELETING, .proc/handle_pockets_del) /obj/item/clothing/accessory/proc/handle_pockets_del(datum/source) SIGNAL_HANDLER @@ -523,25 +523,3 @@ 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/command.dm b/code/modules/clothing/under/jobs/command.dm index 8edb11ba91cc..5c319344bf56 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_nt_skirt" + icon_state = "cmd_skirt" body_parts_covered = CHEST|GROIN|ARMS supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION @@ -113,13 +113,13 @@ //Lieutenant -/obj/item/clothing/under/rank/command +/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/skirt +/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" @@ -127,13 +127,13 @@ can_adjust = FALSE supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION -/obj/item/clothing/under/rank/command/nt +/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/nt/skirt +/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" diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index 7a95273c22f2..b50de5f3d17e 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -11,16 +11,6 @@ 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 251743a5cdad..0f5472a80407 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -276,7 +276,6 @@ 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 3a2475129acc..23800bf4a799 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -7,13 +7,28 @@ 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" - supports_variations = DIGITIGRADE_VARIATION + +/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 /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 1dabceb6db24..64500724d01e 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -87,10 +87,3 @@ 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 01ed8b5a082a..30b47b4c3287 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -89,15 +89,13 @@ 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/officer - name = "syndicate officer uniform" - desc = "A black uniform worn by officers of many branches of the Syndicate." - icon_state = "officer" - can_adjust = FALSE +/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" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE @@ -105,7 +103,6 @@ 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 @@ -113,19 +110,11 @@ 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" @@ -133,20 +122,12 @@ 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" @@ -160,7 +141,6 @@ 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 @@ -187,7 +167,6 @@ 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 6b7f6f19fa2f..ffc7737284df 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_REF(PrintReport)), 100) + addtimer(CALLBACK(src, .proc/PrintReport), 100) else to_chat(user, "The scanner has no logs or is in use.") diff --git a/code/modules/donator/_donator.dm b/code/modules/donator/_donator.dm index b18dbe8f78b3..02631ee8ea28 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, /client/proc/do_donator_redemption) - add_verb(src, /client/proc/do_donator_wcir) + add_verb(src, .proc/do_donator_redemption) + add_verb(src, .proc/do_donator_wcir) /client/Destroy() . = ..() diff --git a/code/modules/economy/selling_pad.dm b/code/modules/economy/selling_pad.dm index 46d660c5cec3..56cafbc35a72 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_REF(send)),warmup_time, TIMER_STOPPABLE) + sending_timer = addtimer(CALLBACK(src,.proc/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 9e4ac8f570a0..0e21622c72c5 100644 --- a/code/modules/events/fake_virus.dm +++ b/code/modules/events/fake_virus.dm @@ -25,7 +25,7 @@ for(var/i=1; i<=rand(1,defacto_min); i++) var/mob/living/carbon/human/onecoughman = pick(fake_virus_victims) if(prob(25))//1/4 odds to get a spooky message instead of coughing out loud - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), onecoughman, "[pick("Your head hurts.", "Your head pounds.")]"), rand(30,150)) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 aecf7c481415..5d7637332353 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_REF(try_spawning), 0, ++retry), waittime) + addtimer(CALLBACK(src, .proc/try_spawning, 0, ++retry), waittime) return if(status == MAP_ERROR) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index ede24c643c43..45e9551ae25a 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 890bbc0f1f2b..5232f81bb696 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_REF(check_winner)) + roundend_callback = CALLBACK(src,.proc/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 1850d7afee22..4bb131f49460 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_REF(feed_feedback)) + RegisterSignal(src,COMSIG_PARENT_ATTACKBY, .proc/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 48219cf98f2f..c906bd170e86 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_REF(get_aquarium_animation), list(COMSIG_FISH_STATUS_CHANGED,COMSIG_FISH_STIRRED)) - RegisterSignal(src, COMSIG_ATOM_TEMPORARY_ANIMATION_START, PROC_REF(on_temp_animation)) + 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) 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_REF(aquarium_exited)) - RegisterSignal(aquarium, COMSIG_PARENT_ATTACKBY, PROC_REF(attack_reaction)) + RegisterSignal(aquarium, COMSIG_ATOM_EXITED, .proc/aquarium_exited) + RegisterSignal(aquarium, COMSIG_PARENT_ATTACKBY, .proc/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_REF(refresh_flopping)), animation_duration) + addtimer(CALLBACK(src, .proc/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 18db513aa6ee..ce91cbf03321 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_REF(interrupt)) + RegisterSignal(fishing_line, COMSIG_FISHING_LINE_SNAPPED, .proc/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_REF(handle_click)) + RegisterSignal(user, COMSIG_MOB_CLICKON, .proc/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_REF(start_biting_phase)), wait_time, TIMER_STOPPABLE) + next_phase_timer = addtimer(CALLBACK(src, .proc/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_REF(start_baiting_phase)), wait_time, TIMER_STOPPABLE) + next_phase_timer = addtimer(CALLBACK(src, .proc/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 aa6841f7f355..1c4c0aa5377f 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_REF(check_los)) - RegisterSignal(fishing_line_beam, COMSIG_PARENT_QDELETING, PROC_REF(clear_line)) + RegisterSignal(fishing_line_beam, COMSIG_BEAM_BEFORE_DRAW, .proc/check_los) + RegisterSignal(fishing_line_beam, COMSIG_PARENT_QDELETING, .proc/clear_line) fishing_lines += fishing_line_beam - INVOKE_ASYNC(fishing_line_beam, TYPE_PROC_REF(/datum/beam, Start)) + INVOKE_ASYNC(fishing_line_beam, /datum/beam/.proc/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_REF(clear_hooked_item)) + RegisterSignal(hooked_item_fishing_line, COMSIG_FISHING_LINE_SNAPPED, .proc/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_REF(handle_dir_change)) + RegisterSignal(origin, COMSIG_ATOM_DIR_CHANGE, .proc/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, TYPE_PROC_REF(/datum/beam, redrawing)) + INVOKE_ASYNC(src, /datum/beam/.proc/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 ac6fae8bc53f..3f0ba7f94ff8 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_REF(dream_sequence), dream_fragments), rand(1, 3) SECONDS, TIMER_STOPPABLE) + dream_timer = addtimer(CALLBACK(src, .proc/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 9ca494d431e9..7c604a15c22b 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_REF(bubble_attack), landing), 10) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/sear.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/sear.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/effects/searwall.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, /mob/.proc/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, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/tap.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/tap.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/effects/searwall.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, /mob/.proc/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, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/pierce.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/pierce.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, "ricochet", 25, 1), rand(5,10)) + addtimer(CALLBACK(target, /mob/.proc/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, GLOBAL_PROC_REF(flick_overlay), speech_overlay, list(target.client), 30) + INVOKE_ASYNC(GLOBAL_PROC, /proc/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,7 +954,10 @@ 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") - target.throw_alert(alert_type, /atom/movable/screen/alert/starving, override = TRUE) + 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) if("gravity") target.throw_alert(alert_type, /atom/movable/screen/alert/weightless, override = TRUE) if("fire") @@ -1095,7 +1098,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( /obj/effect/hallucination/danger/lava/Initialize(mapload, _target) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -1116,7 +1119,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( /obj/effect/hallucination/danger/chasm/Initialize(mapload, _target) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -1133,7 +1136,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( return to_chat(target, "You fall into the chasm!") target.Paralyze(40) - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), target, "It's surprisingly shallow."), 15) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, target, "It's surprisingly shallow."), 15) QDEL_IN(src, 30) /obj/effect/hallucination/danger/anomaly @@ -1143,7 +1146,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( . = ..() START_PROCESSING(SSobj, src) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -1260,13 +1263,13 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(target.client) target.client.images |= shock_image target.client.images |= electrocution_skeleton_anim - addtimer(CALLBACK(src, PROC_REF(reset_shock_animation)), 40) + addtimer(CALLBACK(src, .proc/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_REF(shock_drop)), 20) + addtimer(CALLBACK(src, .proc/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 08a87b6f9193..8db4c2846dcb 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, TYPE_PROC_REF(/datum/reagents, add_reagent), refill, trans), 600) + addtimer(CALLBACK(reagents, /datum/reagents.proc/add_reagent, refill, trans), 600) else if(target.is_drainable()) //A dispenser. Transfer FROM it TO us. if (!is_refillable()) @@ -515,13 +515,6 @@ 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 b4d8cf8090c9..d002c8aab70c 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_REF(explode)), 5 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(check_fermentation)) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/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_REF(do_fermentation)), fermentation_time_remaining, TIMER_UNIQUE|TIMER_STOPPABLE) + fermentation_timer = addtimer(CALLBACK(src, .proc/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 deleted file mode 100644 index 922e74ee9a3b..000000000000 --- a/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm +++ /dev/null @@ -1,84 +0,0 @@ -/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 1d7adb7db4f2..4ca34b224689 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -88,6 +88,63 @@ 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/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm index c4daa88869a7..465b7939c0b7 100644 --- a/code/modules/food_and_drinks/food/customizables.dm +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -304,9 +304,6 @@ 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)) @@ -326,6 +323,22 @@ . = ..() 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/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index e4ccbd1c8f90..86323c2e00bc 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -68,6 +68,20 @@ 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 dfbed9ba9112..95ef84ae5cb7 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/licorice - name = "licorice icecream" - desc = "A salty licorice icecream." +/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." 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 510130ce08be..78999078193c 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","gobble","chomp") + eatverb = pick("bite","chew","nibble","deep throat","gobble","chomp") /obj/item/reagent_containers/food/snacks/salami name = "salami" @@ -430,6 +430,14 @@ 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 3d5adf18e6fd..66c3c87a82da 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_REF(spamcheck)), 1200) + addtimer(CALLBACK(src, .proc/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_REF(spamcheck)), 1200) + addtimer(CALLBACK(src, .proc/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 3024c188facf..2dbbb4f5cc86 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/big_mortar.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/big_mortar.dm @@ -113,7 +113,6 @@ 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) @@ -121,7 +120,6 @@ grind_target_item(target_item, user) else juice_target_item(target_item, user) - target_item = null return if(!attacking_item.juice_results && !attacking_item.grind_results) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index fad3c3bc963f..3a7c7245955c 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) + newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, sourcenutriment / meat_produced) // Thehehe. Fat guys go first 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_REF(make_meat), skin, allmeat, meat_produced, gibtype, diseases), gibtime) + addtimer(CALLBACK(src, .proc/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 13a35b579679..5736d187fc78 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_REF(loop), type, time, wait), wait) + addtimer(CALLBACK(src, .proc/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_REF(cook)), 100) + addtimer(CALLBACK(src, .proc/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 005ffa7632ba..0566a655dc3e 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, GLOBAL_PROC_REF(to_chat), user, "The machine now has [stored_matter] monkey\s worth of material stored.")) + addtimer(CALLBACK(GLOBAL_PROC, /proc/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 acd768347327..2625b25233e5 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -237,18 +237,6 @@ 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 @@ -646,37 +634,19 @@ mix_sound = 'sound/effects/clockcult_gateway_closing.ogg' /datum/chemical_reaction/ash_wine - results = list(/datum/reagent/consumable/ethanol/trickwine/ash_wine = 5) + results = list(/datum/reagent/consumable/ethanol/ash_wine = 5) required_reagents = list(/datum/reagent/consumable/ethanol/absinthe = 3, /datum/reagent/ash = 1, /datum/reagent/drug/mushroomhallucinogen = 1) - required_container = /obj/structure/fermenting_barrel/distiller + required_container = /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask mix_sound ='sound/weather/ashstorm/inside/weak_end.ogg' /datum/chemical_reaction/ice_wine - results = list(/datum/reagent/consumable/ethanol/trickwine/ice_wine = 5) + results = list(/datum/reagent/consumable/ethanol/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/structure/fermenting_barrel/distiller + required_container = /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask mix_sound ='sound/effects/glassbr3.ogg' /datum/chemical_reaction/shock_wine - results = list(/datum/reagent/consumable/ethanol/trickwine/shock_wine = 5) + results = list(/datum/reagent/consumable/ethanol/shock_wine = 5) required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 3, /datum/reagent/calcium = 1, /datum/reagent/consumable/lemonjuice = 1) - required_container = /obj/structure/fermenting_barrel/distiller + required_container = /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask 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 92647559d9cd..588eb863fbd7 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/licorice - name = "Licorice icecream" +/datum/crafting_recipe/food/nogga_black + name = "Nogga black" 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/licorice + result = /obj/item/reagent_containers/food/snacks/popsicle/nogga_black 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 72f2046a3b84..bd7aec4ed422 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -29,6 +29,15 @@ 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 e95bdb2063a8..af1a89a1a38a 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_REF(stalk)), 30, TIMER_STOPPABLE|TIMER_UNIQUE) + timer = addtimer(CALLBACK(src, .proc/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_REF(stalk)), 30, TIMER_STOPPABLE|TIMER_UNIQUE) - addtimer(CALLBACK(src, PROC_REF(teleport_to_target)), 12, TIMER_STOPPABLE|TIMER_UNIQUE) + timer = addtimer(CALLBACK(src, .proc/stalk), 30, TIMER_STOPPABLE|TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 ae19b1dea376..e962dbb520a1 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_REF(roundstart_celebrate))) + SSticker.OnRoundstart(CALLBACK(src, .proc/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 e6a1c90ede6e..c7a911b6cf3f 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_REF(remove_from_holo_lists)) + RegisterSignal(atoms, COMSIG_PARENT_PREQDELETED, .proc/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_REF(load_program), last_program, TRUE), 25) + addtimer(CALLBACK(src,.proc/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_REF(toggle_power), !machine_stat) + INVOKE_ASYNC(src, .proc/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 122c852fbc9a..9c69b8e89812 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_REF(handle_card_delete)) + RegisterSignal(deck, COMSIG_PARENT_QDELETING, .proc/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_REF(handle_mob_delete)) + RegisterSignal(our_mob, COMSIG_PARENT_QDELETING, .proc/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 b69c05e34653..26ea485474aa 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, TYPE_PROC_REF(/atom, update_icon)), 1) + addtimer(CALLBACK(src, /atom/.proc/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 a91ad2b90050..4c9eb274dcb0 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -7,7 +7,6 @@ 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. @@ -49,7 +48,7 @@ to_chat(user, "[I] is stuck to your hand!") return TRUE to_chat(user, "You place [I] into [src] to start the fermentation process.") - addtimer(CALLBACK(src, PROC_REF(makeWine), fruit), rand(80, 120) * speed_multiplier) + addtimer(CALLBACK(src, .proc/makeWine, fruit), rand(80, 120) * speed_multiplier) return TRUE if(I) if(I.is_refillable()) @@ -71,13 +70,14 @@ /obj/structure/fermenting_barrel/update_icon_state() if(open) - icon_state = closed_state+"_open" + icon_state = "barrel_open" else - icon_state = closed_state + icon_state = "barrel" return ..() -/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" +/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 diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index ec05b821371a..75e9b3fbfcdc 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_REF(prime)), rand(10, 60)) + addtimer(CALLBACK(src, .proc/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 1378fb0253fc..627a13354078 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_REF(block_magic)), CALLBACK(src, PROC_REF(expire))) //deliver us from evil o melon god + 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 /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 6c44d2ad3788..0ec5046e659c 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_REF(awaken)), 3 SECONDS) + addtimer(CALLBACK(src, .proc/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 e9be7685e152..b786c854dba6 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 74d004849a2a..b38eeac048cb 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 7063207255f5..fee6a3857d67 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_REF(on_exited)) + RegisterSignal(src, COMSIG_ATOM_EXITED, .proc/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_REF(can_be_rotated))) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/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 a57934dc551d..bc18ce87377b 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_REF(handle_slip), G)) + G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, .proc/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 149f78437fa4..146d8e32d7e2 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_REF(start_playing)) - RegisterSignal(src, COMSIG_SONG_END, PROC_REF(stop_playing)) + RegisterSignal(src, COMSIG_SONG_START, .proc/start_playing) + RegisterSignal(src, COMSIG_SONG_END, .proc/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_REF(handle_speech)) + RegisterSignal(M, COMSIG_MOB_SAY, .proc/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 ba411709edfc..f672c0ecac61 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_REF(start_playing), usr) + INVOKE_ASYNC(src, .proc/start_playing, usr) else if(href_list["newline"]) var/newline = html_encode(input("Enter your line: ", parent.name) as text|null) diff --git a/code/modules/interview/interview.dm b/code/modules/interview/interview.dm index c1ed4dcd87ec..452ce2a9b5f5 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_REF(reconnect_owner)), 50) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/datum/interview_manager, release_from_cooldown), owner_ckey), 180) + addtimer(CALLBACK(GLOB.interviews, /datum/interview_manager.proc/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 9cf57432b4ea..5f04f8c31000 100644 --- a/code/modules/jobs/job_exp.dm +++ b/code/modules/jobs/job_exp.dm @@ -45,7 +45,6 @@ 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) @@ -192,7 +191,7 @@ GLOBAL_PROTECT(exp_to_update) "ckey" = ckey, "minutes" = jvalue))) prefs.exp[jtype] += jvalue - addtimer(CALLBACK(SSblackbox, TYPE_PROC_REF(/datum/controller/subsystem/blackbox, update_exp_db)),20,TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(SSblackbox,/datum/controller/subsystem/blackbox/proc/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 b098e79dadac..b6e6c9e2b731 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -78,6 +78,7 @@ Assistant /datum/outfit/job/assistant/inteq name = "IRMG Recruit (Inteq)" + uniform = /obj/item/clothing/under/syndicate/inteq /datum/outfit/job/assistant/intern @@ -120,6 +121,60 @@ 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)" @@ -153,6 +208,10 @@ 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)" @@ -163,8 +222,13 @@ Assistant head = /obj/item/clothing/head/cowboy/sec/roumain/shadow -/datum/outfit/job/assistant/roumain/post_equip(mob/living/carbon/human/H) - H.faction |= list("roumain") +/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/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 f00d87eb6ba4..eb2df5a68039 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -40,6 +40,14 @@ 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 f704f1c62139..680fe6ee880d 100644 --- a/code/modules/jobs/job_types/bartender.dm +++ b/code/modules/jobs/job_types/bartender.dm @@ -1,7 +1,6 @@ /datum/job/bartender name = "Bartender" - wiki_page = "Drinks" - + wiki_page = "Drinks" //WS Edit - Wikilinks/Warning outfit = /datum/outfit/job/bartender @@ -18,12 +17,16 @@ 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 + alt_uniform = /obj/item/clothing/under/rank/civilian/bartender/purple //WS Edit - Alt Uniforms 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) . = ..() @@ -32,6 +35,34 @@ 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 17820864e57f..27906b1d8bac 100644 --- a/code/modules/jobs/job_types/botanist.dm +++ b/code/modules/jobs/job_types/botanist.dm @@ -27,6 +27,17 @@ 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 d27f2df6b859..6b670693186e 100644 --- a/code/modules/jobs/job_types/brig_physician.dm +++ b/code/modules/jobs/job_types/brig_physician.dm @@ -45,3 +45,39 @@ 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 78e7eb8dde74..42be4234f7f6 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -54,7 +54,6 @@ 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 @@ -62,10 +61,20 @@ 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)" @@ -90,6 +99,71 @@ 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 22f85ed9f57a..c5d2b14aa0eb 100644 --- a/code/modules/jobs/job_types/cargo_technician.dm +++ b/code/modules/jobs/job_types/cargo_technician.dm @@ -35,6 +35,11 @@ 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 9dd36c1e201a..97a2a2403717 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -115,6 +115,7 @@ 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 d98181af7324..9e26a0787865 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -76,6 +76,15 @@ 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 5b862731db49..76d49f4b0f4d 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -72,6 +72,35 @@ 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 f614aab080a0..92e270ee22e7 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -75,6 +75,14 @@ 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 e38e758cf71e..2e97961b7fcb 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -95,6 +95,30 @@ backpack_contents = list(/obj/item/storage/box/ids=1,\ /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) +/datum/outfit/job/head_of_personnel/syndicate + name = "Bridge Officer (Syndicate)" + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/aclfgrunt + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/HoS/beret/syndicate + gloves = /obj/item/clothing/gloves/color/white + id = /obj/item/card/id/syndicate_command/crew_id + r_pocket = /obj/item/kitchen/knife/combat/survival + glasses = /obj/item/clothing/glasses/hud/health + +/datum/outfit/job/head_of_personnel/syndicate/intel + name = "Intelligence Officer (Syndicate)" + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/suit/charcoal + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/HoS/syndicate + gloves = /obj/item/clothing/gloves/combat + id = /obj/item/card/id/syndicate_command/crew_id + r_pocket = /obj/item/kitchen/knife/combat/survival + glasses = /obj/item/clothing/glasses/sunglasses + /datum/outfit/job/head_of_personnel/beluga uniform = /obj/item/clothing/under/rank/command/head_of_personnel diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index a122b4249b98..f38c9fd3a901 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -61,6 +61,16 @@ 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)" @@ -112,9 +122,6 @@ /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 f46b1f243582..49a23855c3c8 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -106,6 +106,27 @@ 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)" @@ -124,9 +145,6 @@ 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 1b989c847ba6..a51249c10f7d 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -45,6 +45,30 @@ //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 aca27ae4acbf..16195bfc1a85 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -29,3 +29,9 @@ 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 1bc260c61c5f..de4a0eb10a24 100644 --- a/code/modules/jobs/job_types/psychologist.dm +++ b/code/modules/jobs/job_types/psychologist.dm @@ -25,3 +25,13 @@ 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 68380b99fa05..3399fb9de9f1 100644 --- a/code/modules/jobs/job_types/quartermaster.dm +++ b/code/modules/jobs/job_types/quartermaster.dm @@ -36,6 +36,16 @@ 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 16a42b26211c..781e6f360dc5 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -100,6 +100,8 @@ 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)" @@ -164,7 +166,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/p16 + belt = /obj/item/storage/belt/military/minutemen/loaded /datum/outfit/job/security/minutemen/mechpilot name = "Mech Pilot (Colonial Minutemen)" @@ -287,8 +289,46 @@ 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/roumain/post_equip(mob/living/carbon/human/H) - H.faction |= list("roumain") +/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/aipirate name = "Nodesman (Security)" @@ -319,6 +359,7 @@ 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 cc5ec142932e..1fade6b2ecf0 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -27,8 +27,7 @@ backpack_contents = list( /obj/item/flashlight/seclite=1,\ /obj/item/kitchen/knife/combat/survival=1,\ - /obj/item/stack/marker_beacon/ten=1,\ - /obj/item/radio/weather_monitor=1) + /obj/item/stack/marker_beacon/ten=1) backpack = /obj/item/storage/backpack/explorer satchel = /obj/item/storage/backpack/satchel/explorer @@ -91,6 +90,43 @@ 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 @@ -126,6 +162,30 @@ /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 a347965d9323..cf774d8a25bb 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -84,6 +84,61 @@ 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)" @@ -106,6 +161,16 @@ 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 7be829dbe619..a59b68a49892 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/p16 + belt = /obj/item/storage/belt/military/minutemen/loaded 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,3 +109,35 @@ 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 6484b22963ba..d1b930174490 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","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","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_GHOST = list() // dead people, observers )) diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index 7b51b433adde..61570535cbbf 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -341,6 +341,28 @@ 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 new file mode 100644 index 000000000000..04f1ad740821 --- /dev/null +++ b/code/modules/language/terrum.dm @@ -0,0 +1,19 @@ +/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 c4263a771b0d..be017a07ef6b 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_REF(perform_research), usr, currentName), 0) + addtimer(CALLBACK(src, .proc/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 a81ec907320c..0099d7eb20e5 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_REF(add_verb), src, /client/verb/mentorhelp), 1 MINUTES, TIMER_STOPPABLE) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 debdb2e2ea02..f36c7c441bad 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_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) /obj/item/kinetic_crusher/ComponentInitialize() . = ..() @@ -64,16 +64,11 @@ /obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user) if(I.tool_behaviour == TOOL_CROWBAR) if(LAZYLEN(trophies)) - 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) + 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) else to_chat(user, "There are no trophies on [src].") else if(istype(I, /obj/item/crusher_trophy)) @@ -116,7 +111,7 @@ D.fire() charged = FALSE update_appearance() - addtimer(CALLBACK(src, PROC_REF(Recharge)), charge_time) + addtimer(CALLBACK(src, .proc/Recharge), charge_time) return if(proximity_flag && isliving(target)) var/mob/living/L = target @@ -357,7 +352,7 @@ /obj/item/crusher_trophy/magma_wing/on_mark_detonation(mob/living/target, mob/living/user) deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/reset_deadly_shot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/item/crusher_trophy/magma_wing/proc/reset_deadly_shot() deadly_shot = FALSE @@ -410,7 +405,7 @@ /obj/item/crusher_trophy/watcher_wing_forgotten/on_mark_detonation(mob/living/target, mob/living/user) deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/reset_deadly_shot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/item/crusher_trophy/watcher_wing_forgotten/proc/reset_deadly_shot() deadly_shot = FALSE @@ -543,7 +538,7 @@ continue playsound(L, 'sound/magic/fireball.ogg', 20, TRUE) new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done + addtimer(CALLBACK(src, .proc/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) @@ -577,7 +572,7 @@ continue playsound(L, 'sound/magic/fireball.ogg', 20, TRUE) new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done + addtimer(CALLBACK(src, .proc/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) @@ -645,7 +640,7 @@ /obj/item/crusher_trophy/blaster_tubes/on_mark_detonation(mob/living/target, mob/living/user) deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/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 deleted file mode 100644 index a0bef397d8ca..000000000000 --- a/code/modules/mining/equipment/miningradio.dm +++ /dev/null @@ -1,23 +0,0 @@ -/// 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 bf0877262923..bcf062d358f0 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_REF(inert_check)), 2400) + addtimer(CALLBACK(src, .proc/inert_check), 2400) /obj/item/organ/regenerative_core/proc/inert_check() if(!preserved) diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index ce299cea1c71..9e911966f023 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_REF(burst)), duration, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, .proc/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 2af4c1b5ce4f..1e281e2f856d 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.\nThis jaunter has been modified to fit on your belt, providing you 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.\nThanks to modifications provided by the Free Golems, this jaunter can be worn on the belt to provide 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, TYPE_PROC_REF(/mob/living/carbon, vomit)), 20) + addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20) diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 0bade04d3fe8..d88bddc3188c 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_REF(regrow)), rand(regrowth_time_low, regrowth_time_high)) + addtimer(CALLBACK(src, .proc/regrow), rand(regrowth_time_low, regrowth_time_high)) return 1 /obj/structure/flora/ash/proc/regrow() @@ -458,7 +458,18 @@ 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" - fill_icon = 'icons/obj/lavaland/ash_flora.dmi' + +/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 ..() /obj/item/reagent_containers/glass/bowl/mushroom_bowl/attackby(obj/item/I,mob/user, params) if(istype(I, /obj/item/reagent_containers/food/snacks)) @@ -485,7 +496,7 @@ name = harvested_name desc = harvested_desc harvested = TRUE - addtimer(CALLBACK(src, PROC_REF(regrow)), rand(regrowth_time_low, regrowth_time_high)) + addtimer(CALLBACK(src, .proc/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 fe446513c521..698e0a2dae25 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -393,7 +393,7 @@ /obj/effect/wisp/orbit(atom/thing, radius, clockwise, rotation_speed, rotation_segments, pre_rotation, lockinorbit) . = ..() if(ismob(thing)) - RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, PROC_REF(update_user_sight)) + RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, .proc/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_REF(unvanish), user), 15 SECONDS) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/atom/movable, throw_at), thrown_by, throw_range+2, throw_speed, null, TRUE), 1) + addtimer(CALLBACK(src, /atom/movable.proc/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_REF(rocksmash)) - RegisterSignal(user, COMSIG_MOVABLE_BUMP, PROC_REF(rocksmash)) + RegisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/rocksmash) + RegisterSignal(user, COMSIG_MOVABLE_BUMP, .proc/rocksmash) else stopmining(user) @@ -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 dragon 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 freak 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, TYPE_PROC_REF(/obj/effect/mine/pickup/bloodbath, mineEffect), H) + INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/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_REF(aoe_burst), T, user) + INVOKE_ASYNC(src, .proc/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_REF(cardinal_blasts), T, user) + INVOKE_ASYNC(src, .proc/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_REF(cardinal_blasts), T, user) //otherwise, just do cardinal blast + INVOKE_ASYNC(src, .proc/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_REF(prepare_icon_update)) + INVOKE_ASYNC(src, .proc/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_REF(prepare_icon_update)) + INVOKE_ASYNC(src, .proc/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_REF(prepare_icon_update)) + INVOKE_ASYNC(src, .proc/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_REF(prepare_icon_update)) + INVOKE_ASYNC(src, .proc/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_REF(prepare_icon_update)) + INVOKE_ASYNC(src, .proc/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_REF(prepare_icon_update)) + INVOKE_ASYNC(src, .proc/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_REF(prepare_icon_update)) + INVOKE_ASYNC(src, .proc/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_REF(teleport_mob), source, L, T, user) //regardless, take all mobs near us along + INVOKE_ASYNC(src, .proc/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_REF(prepare_icon_update)) + INVOKE_ASYNC(src, .proc/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_REF(blast_wall), T, d, user) + INVOKE_ASYNC(src, .proc/blast_wall, T, d, user) /obj/item/hierophant_club/proc/blast_wall(turf/T, dir, mob/living/user) //make a wall of blasts blast_range tiles long if(!T) diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 10f43aad4580..6ac92bd75e34 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_REF(pickup_item)) + RegisterSignal(input_turf, COMSIG_ATOM_ENTERED, .proc/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 ba2a1c6984a4..03a6a9fb39a1 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -127,10 +127,79 @@ /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 ec971ed84bed..67379f1df8b5 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_REF(detonate), notify_admins), det_time, TIMER_STOPPABLE) + det_timer = addtimer(CALLBACK(src, .proc/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 d7865c9d2276..6f37de4c4c77 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -291,12 +291,6 @@ 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)) @@ -404,7 +398,6 @@ 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 @@ -425,7 +418,6 @@ 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 1515aa82f799..0ace7574101a 100644 --- a/code/modules/mob/dead/new_player/ship_select.dm +++ b/code/modules/mob/dead/new_player/ship_select.dm @@ -71,9 +71,6 @@ 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 @@ -107,10 +104,6 @@ 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() @@ -119,8 +112,6 @@ .["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 c39eaf4ef499..443f13c6917f 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/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/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/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 8b0ec1d6f79d..36b2f4d91dab 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" - secondary_color = TRUE + hasinner = 1 color_src = HAIR /datum/sprite_accessory/ears/cat/slime name = "Slimecat" icon_state = "cat" - secondary_color = FALSE + hasinner = FALSE color_src = HAIR image_alpha = 150 @@ -25,11 +25,11 @@ icon = 'icons/mob/species/misc/fox.dmi' name = "Fox" icon_state = "fox" - secondary_color = TRUE + hasinner = 1 color_src = HAIR /datum/sprite_accessory/ears/elf name = "Elf" icon_state = "elf" - secondary_color = FALSE + hasinner = 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 af774d9b055b..95f937811444 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair.dm @@ -198,6 +198,10 @@ 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" @@ -326,6 +330,10 @@ 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" @@ -370,6 +378,10 @@ 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 20f2fe732d31..b25cd222115a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm @@ -170,10 +170,6 @@ 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 3309212c4852..e18e88353061 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm @@ -20,62 +20,68 @@ 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 - secondary_color = TRUE + synthetic_icon_state = "synth" /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 (Two color)" + name = "Smooth" icon_state = "smooth" /datum/sprite_accessory/tails_animated/lizard/smooth - name = "Smooth (Two color)" + name = "Smooth" icon_state = "smooth" -/datum/sprite_accessory/tails/lizard/smooth_onecolor - name = "Smooth (One color)" - icon_state = "smooth2" - secondary_color = FALSE +/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_animated/lizard/smooth_onecolor - name = "Smooth (One color)" - icon_state = "smooth2" +/datum/sprite_accessory/tails_animated/lizard/ltiger + name = "Light Tiger" + icon_state = "ltiger" -/datum/sprite_accessory/tails/lizard/prosthetic - name = "Prosthetic" - icon_state = "synth" +/datum/sprite_accessory/tails/lizard/spikes + name = "Spikes" + icon_state = "spikes" -/datum/sprite_accessory/tails_animated/lizard/prosthetic - name = "Prosthetic" - icon_state = "synth" +/datum/sprite_accessory/tails_animated/lizard/spikes + name = "Spikes" + icon_state = "spikes" /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 @@ -101,10 +107,6 @@ name = "Alligator Skink" icon_state = "eye" -/datum/sprite_accessory/face_markings/dome - name = "Dome" - icon_state = "dome" - //Start Horns /datum/sprite_accessory/horns @@ -162,32 +164,36 @@ /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/aquatic - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/frills/droopy - name = "Droopy" - icon_state = "droopy" - /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" + +/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/neck name = "Neck" icon_state = "neck" @@ -196,21 +202,13 @@ 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/spines.dmi' + icon = 'icons/mob/species/lizard/tails.dmi' /datum/sprite_accessory/spines_animated - icon = 'icons/mob/species/lizard/spines.dmi' + icon = 'icons/mob/species/lizard/tails.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 d34b915e3e35..1e60fd1d7ab5 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/rachnid.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/rachnid.dm @@ -4,37 +4,52 @@ /datum/sprite_accessory/spider_legs icon = 'icons/mob/species/rachnid/spider_legs.dmi' - color_src = 0 - secondary_color = TRUE + color_src = MUTCOLORS + +/datum/sprite_accessory/spider_legs/plain + name = "Plain" + icon_state = "plain" -/datum/sprite_accessory/spider_legs/carapace - name = "Carapace" - icon_state = "carapace" +/datum/sprite_accessory/spider_legs/fuzzy + name = "Fuzzy" + icon_state = "fuzzy" + +/datum/sprite_accessory/spider_legs/spiky + name = "Spiky" + icon_state = "spiky" //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/spikecore - name = "Spikecore" - icon_state = "spikecore" +/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/cerberus - name = "Cerberus" - icon_state = "cerberus" +/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/queen - name = "Queen" - icon_state = "queen" +/datum/sprite_accessory/spider_mandibles/plain + name = "Plain" + icon_state = "plain" -/datum/sprite_accessory/spider_spinneret/folds - name = "Folds" - icon_state = "folds" - secondary_color = FALSE +/datum/sprite_accessory/spider_mandibles/fuzzy + name = "Fuzzy" + icon_state = "fuzzy" -/datum/sprite_accessory/spider_spinneret/prongs - name = "Prongs" - icon_state = "prongs" +/datum/sprite_accessory/spider_mandibles/spiky + name = "Spiky" + icon_state = "spiky" 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 187bd4ce569e..c71feb42c6de 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,11 +112,6 @@ 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 5d8c44bbc188..1ed569f93ecc 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, TYPE_PROC_REF(/atom, update_atom_colour)), 10) + addtimer(CALLBACK(src, /atom/proc/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 de07b3d4f0fd..75f1026e4414 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_REF(execute_quick_equip))) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/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_REF(execute_equipment_swap))) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/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 aec75960989d..a986fc5be298 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_REF(resume_bleeding)), amount) + addtimer(CALLBACK(src, .proc/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 bc0f3849360f..6aaa361b0bfb 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_REF(bloodpool_sink), B) + INVOKE_ASYNC(src, .proc/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, TYPE_PROC_REF(/atom, remove_atom_colour), TEMPORARY_COLOUR_PRIORITY, newcolor), 6 SECONDS) + addtimer(CALLBACK(src, /atom/.proc/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 1cba16cc0a9a..06bc7e0bc886 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_REF(check_success)), askDelay) + addtimer(CALLBACK(src, .proc/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 5163821a9573..186dedcc86d5 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_REF(leap_end))) + throw_at(leap_target, MAX_ALIEN_LEAP_DIST, 2, src, FALSE, TRUE, callback = CALLBACK(src, .proc/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 8faa15b83929..33e8cb7ab708 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_REF(clear_queen_death)), QUEEN_DEATH_DEBUFF_DURATION) + addtimer(CALLBACK(src, .proc/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 49ff1e88937b..b2020b3b9c71 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_REF(RefreshInfectionImage)) + INVOKE_ASYNC(src, .proc/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 a9caeba37208..39958b84fc0d 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_REF(Impregnate), target), facehugger_mob.pregnation_time) + addtimer(CALLBACK(src, .proc/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 0ac30d207a41..3ebba3ed7958 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_REF(after_parent_destroyed)) + check_weed.RegisterSignal(parent_node, COMSIG_PARENT_QDELETING, .proc/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_REF(do_qdel)), random_time) + addtimer(CALLBACK(src, .proc/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_REF(after_parent_destroyed)) + RegisterSignal(parent_node, COMSIG_PARENT_QDELETING, .proc/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_REF(Grow)), GROWTH_TIME) + addtimer(CALLBACK(src, .proc/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_REF(finish_bursting), kill), 15) + addtimer(CALLBACK(src, .proc/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 82c27e95174b..84f67c8f8814 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, TYPE_PROC_REF(/obj/item, attack), src, src) + INVOKE_ASYNC(I, /obj/item.proc/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 df9b5c22704d..a99baf1baf54 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, TYPE_PROC_REF(/mob/living, SetKnockdown), 0), SHOVE_CHAIN_PARALYZE) + addtimer(CALLBACK(target, /mob/living/proc/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, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(target, /mob/living/carbon/proc/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_REF(secondary_shock), should_stun), 20) + addtimer(CALLBACK(src, .proc/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 a7dc41b307c4..7d06c9e1f827 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 2045bfe4aa18..4da26d4406ca 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -25,16 +25,12 @@ 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) @@ -47,8 +43,6 @@ 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 8c1a36c2061b..5062adbff8a1 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_REF(emote), "deathgasp") + INVOKE_ASYNC(src, .proc/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_REF(gib), null, null, TRUE, TRUE), 25) + addtimer(CALLBACK(src, .proc/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 55b01d4200e2..3a4591fabb98 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_REF(end_blink), living_user), BLINK_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) + blink_timer = addtimer(CALLBACK(living_emote, .proc/end_blink, living_user), BLINK_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) /datum/emote/living/carbon/blink/proc/end_blink(mob/living/living_user) if(!QDELETED(living_user)) @@ -429,7 +429,7 @@ icon = 'icons/mob/animal.dmi' icon_state = "heart" hitsound = 'sound/effects/kiss.ogg' - hitsound_non_living = 'sound/effects/kiss.ogg' + hitsound_wall = '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, TYPE_PROC_REF(/atom/movable, say), pick("Uhhh...", "O-oh, uhm...", "I- uhhhhh??", "You too!!", "What?")), rand(0.5 SECONDS, 1.5 SECONDS)) + 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)) 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_REF(ownerExamined)) + RegisterSignal(owner, COMSIG_PARENT_EXAMINE, .proc/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_REF(waitASecond), owner, sucker), 4) + addtimer(CALLBACK(src, .proc/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_REF(selfGottem), owner), 10) + addtimer(CALLBACK(src, .proc/selfGottem, owner), 10) else to_chat(sucker, "Wait a second... was that a-") - addtimer(CALLBACK(src, PROC_REF(GOTTEM), owner, sucker), 6) + addtimer(CALLBACK(src, .proc/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 5e0462d6f3cc..96947ef44326 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_REF(stop_starting)), 300) + addtimer(CALLBACK(src, .proc/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 4283e2304fed..840488a3c120 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_REF(icon_setup), O, _prefs) + INVOKE_ASYNC(src, .proc/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_REF(disco), src), 5) //Call ourselves every 0.5 seconds to change color + addtimer(CALLBACK(src, .proc/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 c35d8a71759e..c28328fde590 100644 --- a/code/modules/mob/living/carbon/human/consistent_human.dm +++ b/code/modules/mob/living/carbon/human/consistent_human.dm @@ -24,6 +24,7 @@ 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 55adc5bd5d17..f5d37597ed84 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), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) + INVOKE_ASYNC(is_devil(src), /datum/antagonist/devil.proc/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 ceda44284f46..a260f164829f 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -232,6 +232,11 @@ 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 7f8ca668d05b..a22987b80929 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_REF(set_species), dna.species.type) //This generates new limbs based on the species, beware. + INVOKE_ASYNC(src, .proc/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_REF(clean_face)) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_FACE_ACT, .proc/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(), sector_datestamp(shortened = TRUE), t1) + R.fields[text("com_[]", counter)] = text("Made by [] on [] [], []
    []", allowed_access, station_time_timestamp(), time2text(world.realtime, "MMM DD"), "504 FS", t1) to_chat(usr, "Successfully added comment.") return @@ -646,7 +646,7 @@ return threatcount -//Used for new human mobs created by cloning/podding +//Used for new human mobs created by cloning/goleming/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_REF(end_electrocution_animation), electrocution_skeleton_anim), anim_duration) + addtimer(CALLBACK(src, .proc/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_REF(set_species), race) + INVOKE_ASYNC(src, .proc/set_species, race) /mob/living/carbon/human/species/abductor race = /datum/species/abductor @@ -1336,6 +1336,83 @@ /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 diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 123ecf6d4fba..fb2071302cb1 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -97,9 +97,6 @@ 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) @@ -695,8 +692,15 @@ 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) @@ -705,6 +709,7 @@ ..() + /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 bbe40388435a..4f3399675f0a 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. + ///Inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example. var/list/no_equip = list() - /// Allows the species to equip items that normally require a jumpsuit without having one equipped. + /// Allows the species to equip items that normally require a jumpsuit without having one equipped. Used by golems. 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,6 +978,8 @@ 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") @@ -1052,17 +1054,17 @@ GLOBAL_LIST_EMPTY(roundstart_races) accessory_overlay.color = forced_colour standing += accessory_overlay - if(S.secondary_color) - var/mutable_appearance/secondary_color_overlay = mutable_appearance(S.icon, layer = -layer) + if(S.hasinner) + var/mutable_appearance/inner_accessory_overlay = mutable_appearance(S.icon, layer = -layer) if(S.gender_specific) - secondary_color_overlay.icon_state = "[g]_[bodypart]_secondary_[S.icon_state]_[layertext]" + inner_accessory_overlay.icon_state = "[g]_[bodypart]inner_[S.icon_state]_[layertext]" else - secondary_color_overlay.icon_state = "m_[bodypart]_secondary_[S.icon_state]_[layertext]" + inner_accessory_overlay.icon_state = "m_[bodypart]inner_[S.icon_state]_[layertext]" if(S.center) - 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 + 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 H.overlays_standing[layer] = standing.Copy() standing = list() @@ -1350,6 +1352,22 @@ 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 @@ -1381,7 +1399,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.overeatduration -= 2 //doubled the unfat rate //metabolism change - if(H.nutrition > NUTRITION_LEVEL_FED && H.satiety > 80) + if(H.nutrition > NUTRITION_LEVEL_FAT) + H.metabolism_efficiency = 1 + else 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 @@ -1408,7 +1428,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.remove_movespeed_modifier(/datum/movespeed_modifier/hunger) switch(H.nutrition) - if(NUTRITION_LEVEL_HUNGRY to INFINITY) + if(NUTRITION_LEVEL_FULL to INFINITY) + H.throw_alert("nutrition", /atom/movable/screen/alert/fat) + if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FULL) H.clear_alert("nutrition") if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) H.throw_alert("nutrition", /atom/movable/screen/alert/hungry) @@ -1445,7 +1467,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_REF(go_bald), H), 50) + addtimer(CALLBACK(src, .proc/go_bald, H), 50) /datum/species/proc/go_bald(mob/living/carbon/human/H) if(QDELETED(H)) //may be called from a timer @@ -1746,8 +1768,6 @@ 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 @@ -1756,8 +1776,6 @@ 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) @@ -1774,8 +1792,6 @@ 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) @@ -2217,7 +2233,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, TYPE_PROC_REF(/mob/living/carbon, spin), 1, 1)) + new /datum/forced_movement(H, get_ranged_target_turf(H, olddir, 4), 1, FALSE, CALLBACK(H, /mob/living/carbon/.proc/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 dfa12f329054..38eeeb9d9c18 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_REF(post_death), C), 5 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(post_revival), H), 6 SECONDS) + addtimer(CALLBACK(src, .proc/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 26ed84073c99..55217a814d35 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -17,6 +17,12 @@ 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) @@ -116,10 +122,10 @@ return INITIALIZE_HINT_QDEL owner = new_owner START_PROCESSING(SSobj, src) - 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)) + 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) 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 a2ff92508d61..2a0e8a2d62fe 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_REF(on_emag_act)) - RegisterSignal(ethereal, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) + RegisterSignal(ethereal, COMSIG_ATOM_EMAG_ACT, .proc/on_emag_act) + RegisterSignal(ethereal, COMSIG_ATOM_EMP_ACT, .proc/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_REF(stop_emp), H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds + addtimer(CALLBACK(src, .proc/stop_emp, H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds if(EMP_HEAVY) - addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds + addtimer(CALLBACK(src, .proc/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_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. + 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. /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_REF(handle_emag), H), 5) //Call ourselves every 0.5 seconds to change color + addtimer(CALLBACK(src, .proc/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 new file mode 100644 index 000000000000..4164b8e2bb8e --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -0,0 +1,1118 @@ +/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 eb78ef131644..7dcfb31f1e8a 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_REF(unlink_mob)) - RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(unlink_mob)) + RegisterSignal(M, COMSIG_MOB_DEATH , .proc/unlink_mob) + RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/unlink_mob) return TRUE /datum/species/jelly/stargazer/proc/unlink_mob(mob/living/M) diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 6e4ae1cdb9a3..f54c9dff634d 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -32,6 +32,11 @@ 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 920115f52c02..caa36764a1ff 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -23,6 +23,11 @@ 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 f7ae4f6bef10..84faffde6ca2 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") - default_features = list("spider_legs" = "Carapaced", "spider_spinneret" = "Plain", "body_size" = "Normal") + mutant_bodyparts = list("spider_legs", "spider_spinneret", "spider_mandibles") + default_features = list("spider_legs" = "Plain", "spider_spinneret" = "Plain", "spider_mandibles" = "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_REF(cocoonAtom)) + RegisterSignal(H, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), .proc/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 ebc923c01075..b4c9fac9db08 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -16,6 +16,14 @@ 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 e1a0107bc0ad..de92657cb519 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_REF(handle_sprite_magic), override = TRUE) + RegisterSignal(owner, COMSIG_ATOM_DIR_CHANGE, .proc/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_REF(on_examine)) + RegisterSignal(owner, COMSIG_PARENT_EXAMINE, .proc/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 702adfb224a2..8c53a6ca9a07 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -24,6 +24,11 @@ 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 a0e409c2053d..d7d6754b0e5d 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', legcuffed.icon_state, -LEGCUFF_LAYER) + overlays_standing[LEGCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', "legcuff1", -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/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 1f730de799d0..832c2a375095 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_REF(pickup_and_wear), C), 5) + addtimer(CALLBACK(src, .proc/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_REF(equip_to_appropriate_slot), C), 5) + addtimer(CALLBACK(src, .proc/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_REF(walk2derpless), pickupTarget.loc) + INVOKE_ASYNC(src, .proc/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_REF(pickpocket), M) + INVOKE_ASYNC(src, .proc/pickpocket, M) return TRUE switch(mode) @@ -180,7 +180,7 @@ return TRUE if(target != null) - INVOKE_ASYNC(src, PROC_REF(walk2derpless), target) + INVOKE_ASYNC(src, .proc/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_REF(walk2derpless), target.loc) + INVOKE_ASYNC(src, .proc/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_REF(walk2derpless), bodyDisposal.loc) + INVOKE_ASYNC(src, .proc/walk2derpless, bodyDisposal.loc) if(Adjacent(bodyDisposal)) disposing_body = TRUE - addtimer(CALLBACK(src, PROC_REF(stuff_mob_in)), 5) + addtimer(CALLBACK(src, .proc/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 c80c9a821fd0..308abdb92f36 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_REF(special_update_hands)) + RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, .proc/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 76daa5ba21d4..4916d062da29 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -23,12 +23,8 @@ 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) @@ -37,8 +33,6 @@ 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 6615edb051f0..e334655b3848 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] = REALTIMEOFDAY + GLOB.respawn_timers[client?.ckey] = world.timeofday 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 56ae0db795e5..7b11668db56a 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_REF(end_blush), living_user), BLUSH_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) + blush_timer = addtimer(CALLBACK(living_emote, .proc/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 ? TYPE_PROC_REF(/mob/living/carbon/human, OpenWings) : TYPE_PROC_REF(/mob/living/carbon/human, CloseWings)), wing_time) + addtimer(CALLBACK(H, open ? /mob/living/carbon/human.proc/OpenWings : /mob/living/carbon/human.proc/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_REF(end_snore), living_user), SNORE_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) + snore_timer = addtimer(CALLBACK(living_emote, .proc/end_snore, living_user), SNORE_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) /datum/emote/living/snore/proc/end_snore(mob/living/living_user) if(!QDELETED(living_user)) diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm index d3f9f0ebd8a9..65bb3b762955 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_REF(on_knockedout_trait_gain)) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_KNOCKEDOUT), PROC_REF(on_knockedout_trait_loss)) + 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_DEATHCOMA), PROC_REF(on_deathcoma_trait_gain)) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_DEATHCOMA), PROC_REF(on_deathcoma_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_IMMOBILIZED), PROC_REF(on_immobilized_trait_gain)) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_IMMOBILIZED), PROC_REF(on_immobilized_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_FLOORED), PROC_REF(on_floored_trait_gain)) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_FLOORED), PROC_REF(on_floored_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_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_HANDS_BLOCKED), .proc/on_handsblocked_trait_gain) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_HANDS_BLOCKED), .proc/on_handsblocked_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_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_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_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_INCAPACITATED), PROC_REF(on_incapacitated_trait_gain)) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_INCAPACITATED), PROC_REF(on_incapacitated_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_RESTRAINED), PROC_REF(on_restrained_trait_gain)) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_RESTRAINED), PROC_REF(on_restrained_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, list( SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION), @@ -33,7 +33,7 @@ SIGNAL_ADDTRAIT(TRAIT_NODEATH), SIGNAL_REMOVETRAIT(TRAIT_NODEATH), - ), PROC_REF(update_succumb_action)) + ), .proc/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 47fc5bd82ecb..33d73b6e4997 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_REF(gravity_pulse_animation)) + INVOKE_ASYNC(src, .proc/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 821bef7d25ff..cd06fa25700f 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) AddElement(/datum/element/connect_loc, loc_connections) @@ -502,7 +502,8 @@ /mob/living/proc/get_up(instant = FALSE) set waitfor = FALSE - if(!instant && !do_mob(src, src, 2 SECONDS, uninterruptible = TRUE, extra_checks = CALLBACK(src, TYPE_PROC_REF(/mob/living, rest_checks_callback)))) + 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)) return if(resting || body_position == STANDING_UP || HAS_TRAIT(src, TRAIT_FLOORED)) return @@ -656,7 +657,7 @@ var/obj/effect/proc_holder/spell/spell = S spell.updateButtonIcon() if(excess_healing) - INVOKE_ASYNC(src, PROC_REF(emote), "gasp") + INVOKE_ASYNC(src, .proc/emote, "gasp") log_combat(src, src, "revived") /mob/living/proc/remove_CC() @@ -861,7 +862,7 @@ set name = "Resist" set category = "IC" - DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(execute_resist))) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/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() @@ -1525,8 +1526,8 @@ if(!can_look_up()) return changeNext_move(CLICK_CD_LOOK_UP) - 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. + 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. start_look_up() /mob/living/proc/start_look_up() @@ -1570,8 +1571,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_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. + 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. 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 f119c7dbc308..31676cd64007 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -55,7 +55,6 @@ 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) @@ -399,8 +398,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_REF(cult_ending_helper), 1), 120) - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(ending_helper)), 270) + addtimer(CALLBACK(GLOBAL_PROC, .proc/cult_ending_helper, 1), 120) + addtimer(CALLBACK(GLOBAL_PROC, .proc/ending_helper), 270) if(client) makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, cultoverride = TRUE) else @@ -423,7 +422,7 @@ return FALSE if(get_eye_protection() < intensity && (override_blindness_check || !is_blind())) overlay_fullscreen("flash", type) - addtimer(CALLBACK(src, PROC_REF(clear_fullscreen), "flash", 25), 25) + addtimer(CALLBACK(src, .proc/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 eeb3948e627c..f092cef8cac9 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 - var/logged_message = message + src.log_talk(message, LOG_WHISPER, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE]) 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,12 +167,8 @@ 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]) @@ -301,7 +297,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, GLOBAL_PROC_REF(flick_overlay), I, speech_bubble_recipients, 30) + INVOKE_ASYNC(GLOBAL_PROC, /.proc/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 daa987904737..81d1cc78ca92 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_REF(apply_pref_name),"ai",client) + INVOKE_ASYNC(src, .proc/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,15 +737,9 @@ 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 f66d00b5f7aa..8c42baf4914e 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, GLOBAL_PROC_REF(explosion), loc, 3, 6, 12, 15), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 124028009116..4591720b7986 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_REF(update)), UPDATE_BUFFER, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 b8af19155f09..85b20d068be2 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_REF(start_RestorePowerRoutine)), 20) + addtimer(CALLBACK(src, .proc/start_RestorePowerRoutine), 20) diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index 30c7cd435068..ca35a7544222 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_REF(show_laws)), 0) - addtimer(CALLBACK(src, PROC_REF(deadchat_lawchange)), 0) + addtimer(CALLBACK(src, .proc/show_laws), 0) + addtimer(CALLBACK(src, .proc/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 be79cf7184ab..cc646cfcc98c 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_REF(pdaconfig)), 5) + addtimer(CALLBACK(src, .proc/pdaconfig), 5) . = ..() emittersemicd = TRUE - addtimer(CALLBACK(src, PROC_REF(emittercool)), 600) + addtimer(CALLBACK(src, .proc/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 ca65a416691c..279d37045cc5 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_REF(emittercool)), emittercd) + addtimer(CALLBACK(src, .proc/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_REF(emittercool)), emittercd) + addtimer(CALLBACK(src, .proc/emittercool), emittercd) else - addtimer(CALLBACK(src, PROC_REF(emittercool)), emitteroverloadcd) + addtimer(CALLBACK(src, .proc/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 a099c05488fa..cbcf7c6f2129 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -5,52 +5,20 @@ // - 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", - "o.o", + "what", + "sad", "off", - "pleading", - "question", - "sadcat", - "smug", - "snek", - "spiral", + "laugh", + "happy", + "face", + "estatic", + "cat", + "angry", "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 df62df082751..b35afb1558e6 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_REF(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/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 44bfe5626754..2c874ee845f0 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_REF(charge)) + RegisterSignal(src, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, .proc/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_REF(updatename)) + INVOKE_ASYNC(src, .proc/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_REF(show_playstyle)), 5) + addtimer(CALLBACK(src, .proc/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_REF(show_playstyle)), 5) + addtimer(CALLBACK(src, .proc/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_REF(updatename)) + INVOKE_ASYNC(src, .proc/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 39a0ede9334f..433c735a2784 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_REF(_step_away), src, get_turf(user), 15), 3) + addtimer(CALLBACK(GLOBAL_PROC, .proc/_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 27819d97cf15..dee91ab20f81 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_REF(do_transform_animation)) + INVOKE_ASYNC(RM, .proc/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_REF(check_menu), R), radius = 42, require_near = TRUE) + var/default_borg_icon = show_radial_menu(R, R , default_icons, custom_check = CALLBACK(src, .proc/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_REF(check_menu), R), radius = 42, require_near = TRUE) + var/med_borg_icon = show_radial_menu(R, R , med_icons, custom_check = CALLBACK(src, .proc/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_REF(check_menu), R), radius = 42, require_near = TRUE) + var/engi_borg_icon = show_radial_menu(R, R , engi_icons, custom_check = CALLBACK(src, .proc/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_REF(check_menu), R), radius = 42, require_near = TRUE) + var/sec_borg_icon = show_radial_menu(R, R , sec_icons, custom_check = CALLBACK(src, .proc/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_REF(check_menu), R), radius = 42, require_near = TRUE) + var/jan_borg_icon = show_radial_menu(R, R , jan_icons, custom_check = CALLBACK(src, .proc/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_REF(check_menu), R), radius = 42, require_near = TRUE) + var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, .proc/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_REF(check_menu), R), radius = 42, require_near = TRUE) + var/mining_borg_icon = show_radial_menu(R, R , mining_icons, custom_check = CALLBACK(src, .proc/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 347ec71e84e4..1923df3b50eb 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_REF(show_alarms)), 3 SECONDS) + addtimer(CALLBACK(src, .proc/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 cc0a01aa375f..590326eda1b1 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_REF(do_camera_update), oldLoc), SILICON_CAMERA_BUFFER) + addtimer(CALLBACK(src, .proc/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 52346fd7cddd..b0c583b9c247 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_REF(stun_attack), AM) + INVOKE_ASYNC(src, .proc/stun_attack, AM) /mob/living/simple_animal/bot/secbot/grievous/Initialize() . = ..() - INVOKE_ASYNC(weapon, TYPE_PROC_REF(/obj/item, attack_self), src) + INVOKE_ASYNC(weapon, /obj/item.proc/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, TYPE_PROC_REF(/atom, update_appearance)), 2) + addtimer(CALLBACK(src, /atom/.proc/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_REF(check_for_weapons))) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/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_REF(handle_automated_action)) + INVOKE_ASYNC(src, .proc/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 1c25a67c1dbe..5b4d66893f5b 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_REF(emp_reset), was_on), severity*30 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(bot_step), dest), BOT_STEP_DELAY*step_number) + addtimer(CALLBACK(src, .proc/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_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 + 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 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_REF(do_patrol)), 5) + addtimer(CALLBACK(src, .proc/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_REF(target_patrol)) + INVOKE_ASYNC(src, .proc/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_REF(patrol_step_not_moved)), 2) + addtimer(CALLBACK(src, .proc/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_REF(do_calc_summon_path), avoid) + INVOKE_ASYNC(src, .proc/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_REF(summon_step_not_moved)), 2) + addtimer(CALLBACK(src, .proc/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 5229967f0374..ea8c5bd93540 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, TYPE_PROC_REF(/obj/item, attack), C, src) + INVOKE_ASYNC(weapon, /obj/item/proc/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 bd3ad4bbcf17..c3c046b84727 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_REF(check_for_weapons))) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/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 d15c20f1aa1d..fa6faaa6a889 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_REF(go_idle)), 0.5 SECONDS) + addtimer(CALLBACK(src, .proc/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 34ce788c53c5..02bf813396f8 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, TYPE_PROC_REF(/atom, update_icon)), 5, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, /atom/.proc/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_REF(spam_flag_false)), 18) // calibrates before starting the honk + addtimer(CALLBACK(src, .proc/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_REF(react_buzz)), 5) + addtimer(CALLBACK(src, .proc/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_REF(react_buzz)), 5) + addtimer(CALLBACK(src, .proc/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_REF(spam_flag_false)), cooldowntimehorn) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/atom, update_icon)), 30, TIMER_OVERRIDE|TIMER_UNIQUE) - addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn) + addtimer(CALLBACK(src, /atom/.proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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_REF(spam_flag_false)), cooldowntimehorn) + addtimer(CALLBACK(src, .proc/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_REF(spam_flag_false)), cooldowntime) + addtimer(CALLBACK(src, .proc/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_REF(spam_flag_false)), cooldowntime) + addtimer(CALLBACK(src, .proc/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_REF(handle_automated_action)) //responds quickly + INVOKE_ASYNC(src, .proc/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_REF(handle_automated_action)) // responds quickly + INVOKE_ASYNC(src, .proc/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_REF(handle_automated_action)) + INVOKE_ASYNC(src, .proc/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_REF(speak), "Honk!") + INVOKE_ASYNC(src, .proc/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 7240027f0853..af1ce80b2a88 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_REF(handle_automated_action)) + INVOKE_ASYNC(src, .proc/handle_automated_action) /mob/living/simple_animal/bot/hygienebot/proc/back_to_hunt() frustration = 0 mode = BOT_HUNT stop_washing() - INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) + INVOKE_ASYNC(src, .proc/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_REF(handle_automated_action)) + INVOKE_ASYNC(src, .proc/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 5191ee1ba0c8..9bc75267a7dd 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_REF(process_blocked), next), 2 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(process_nav)) + INVOKE_ASYNC(src, .proc/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_REF(do_start_home)) + INVOKE_ASYNC(src, .proc/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_REF(ghostmoved)) + RegisterSignal(AM, COMSIG_MOVABLE_MOVED, .proc/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 af33ef493167..4629dd87c157 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_REF(check_for_weapons))) + threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/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_REF(attempt_handcuff), C), 60) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/atom, update_icon)), 2) + addtimer(CALLBACK(src, /atom/.proc/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_REF(check_for_weapons))) + threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) else C.Paralyze(100) C.stuttering = 5 - threat = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) + threat = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/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_REF(handle_automated_action)) + INVOKE_ASYNC(src, .proc/handle_automated_action) /mob/living/simple_animal/bot/secbot/proc/back_to_hunt() anchored = FALSE frustration = 0 mode = BOT_HUNT - INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) + INVOKE_ASYNC(src, .proc/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_REF(check_for_weapons))) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/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_REF(handle_automated_action)) + INVOKE_ASYNC(src, .proc/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 daac95f38ba4..04ff8f5f54de 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -46,25 +46,6 @@ 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 af5875853ce1..b62bb484c7bf 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_REF(dance_rotate), src) + INVOKE_ASYNC(GLOBAL_PROC, .proc/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, TYPE_PROC_REF(/obj/item, afterattack), src, user, 1) + INVOKE_ASYNC(item_to_add, /obj/item.proc/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 56d7fefb06c4..a70a9ff5cc64 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_REF(check_menu)), radius = 38, require_near = TRUE) + var/picked_icon = show_radial_menu(src, src, drone_icons, custom_check = CALLBACK(src, .proc/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_REF(check_menu)), radius = 38, require_near = TRUE) + var/picked_color = show_radial_menu(src, src, drone_colors, custom_check = CALLBACK(src, .proc/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 a1884b76298e..e29029ff694d 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_REF(cow_tipped), M), rand(20,50)) + addtimer(CALLBACK(src, .proc/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 cf1b0de8ae70..48f84240c5ac 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_REF(cheese_down)), 3 MINUTES) + addtimer(CALLBACK(src, .proc/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 d33fac8f5c00..c24271d9b09e 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_REF(update_phrases)) + INVOKE_ASYNC(src, .proc/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 7ebd3c8b3cca..384bbf7e005b 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_REF(charging_end))) + throw_at(targeted_atom, range, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/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 f93f70d8ffb3..863389b9840a 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_REF(display_examine)) - RegisterSignal(A, boom_signals, PROC_REF(kaboom)) - addtimer(CALLBACK(src, PROC_REF(disable), A), 600, TIMER_UNIQUE|TIMER_OVERRIDE) + 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) 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 a86e38db7772..b8a8bbb54366 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_REF(__distance_check)) + RegisterSignal(A, COMSIG_MOVABLE_MOVED, .proc/__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 105ae8b35ec8..d4666873848e 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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 676b58a98520..d079fbed4ce4 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_REF(death)), timetolive) + addtimer(CALLBACK(src, .proc/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 5e3e8d0b34d5..09fdf0d763ba 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_REF(do_action)), 5 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(GiveUp), C), 10 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(GiveUp), O), 10 SECONDS) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/mob/living/simple_animal/hostile/poison/giant_spider/nurse, cocoon)) + INVOKE_ASYNC(user, /mob/living/simple_animal/hostile/poison/giant_spider/nurse/.proc/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 0d48bdb082e6..bf0337488dcb 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_REF(goosement)) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/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_REF(suffocate)), 300) + addtimer(CALLBACK(src, .proc/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_REF(vomit)), 300) + addtimer(CALLBACK(src, .proc/vomit), 300) else - addtimer(CALLBACK(src, PROC_REF(suffocate)), 300) + addtimer(CALLBACK(src, .proc/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_REF(vomit_start), duration), 13) //13 is the length of the vomit_start animation in gooseloose.dmi + addtimer(CALLBACK(src, .proc/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_REF(vomit_preend)), duration) + addtimer(CALLBACK(src, .proc/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_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) + "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) /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 850ff235375f..08bb29d32f38 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_REF(death)), 100) + addtimer(CALLBACK(src, .proc/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 6eaa0f8ebd5a..106c9ad54f60 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_REF(sidestep)) + var/datum/cb = CALLBACK(src,.proc/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_REF(CheckAndAttack)) + var/datum/callback/cb = CALLBACK(src, .proc/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_REF(Shoot), A) + var/datum/callback/cb = CALLBACK(src, .proc/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_REF(LoseTarget)), lose_patience_timeout, TIMER_STOPPABLE) + lose_patience_timer_id = addtimer(CALLBACK(src, .proc/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_REF(RegainSearchObjects)), search_objects_regain_time, TIMER_STOPPABLE) + search_objects_timer_id = addtimer(CALLBACK(src, .proc/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_REF(handle_charge_target), target), 1.5 SECONDS, TIMER_STOPPABLE) + addtimer(CALLBACK(src, .proc/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_REF(charge_end))) + throw_at(target, charge_distance, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/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_REF(handle_target_del), TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/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 7fd15ed0b6a1..c476a5f5cf2b 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, TYPE_PROC_REF(/atom/movable, float), TRUE) + INVOKE_ASYNC(src, /atom/movable.proc/float, TRUE) QDEL_IN(src, 100) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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_REF(FinishHop))) + throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .proc/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_REF(OpenFire), target), 5) + addtimer(CALLBACK(src, .proc/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_REF(BellyFlopHop), new_turf), 30) + addtimer(CALLBACK(src, .proc/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_REF(Crush))) + throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/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 b85da6c2c726..06b2924033d9 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_REF(SlashCombo)), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, .proc/SlashCombo), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, PROC_REF(LeapAttack)), ATTACK_INTERMISSION_TIME + rand(0,3)) + addtimer(CALLBACK(src, .proc/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_REF(SlashAttack)), 3) - addtimer(CALLBACK(src, PROC_REF(SlashAttack)), 6) - addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 9) + addtimer(CALLBACK(src, .proc/SlashAttack), 3) + addtimer(CALLBACK(src, .proc/SlashAttack), 6) + addtimer(CALLBACK(src, .proc/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_REF(AttackRecovery))) + throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, .proc/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_REF(WarmupAttack), TRUE), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, .proc/WarmupAttack, TRUE), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, PROC_REF(WarmupAttack)), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, .proc/WarmupAttack), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, PROC_REF(ResetNeutral)), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, .proc/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 be9ef71562f3..91da0614fb50 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_non_living = 'sound/weapons/effects/searwall.ogg' + hitsound_wall = '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_REF(Volley)), 5) + addtimer(CALLBACK(src, .proc/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_REF(Beamu), living_target, solar_beam_identifier), 35) + addtimer(CALLBACK(src, .proc/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_REF(AttackRecovery)), 5) + addtimer(CALLBACK(src, .proc/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_REF(InaccurateShot)) + var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot) for(var/i in 1 to 13) addtimer(cb, i) - addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 14) + addtimer(CALLBACK(src, .proc/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_REF(ResetNeutral)), 10) + addtimer(CALLBACK(src, .proc/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 cf8a32af157c..a4678a69799a 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_REF(enter_mecha), M) + INVOKE_ASYNC(src, .proc/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, TYPE_PROC_REF(/datum/action/innate/mecha/mech_defense_mode, Activate), FALSE), 100) //10 seconds of defense, then toggle off + addtimer(CALLBACK(mecha.defense_action, /datum/action/innate/mecha/mech_defense_mode.proc/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, TYPE_PROC_REF(/datum/action/innate/mecha/mech_defense_mode, Activate), FALSE), 100) //10 seconds of speeeeed, then toggle off + addtimer(CALLBACK(mecha.overload_action, /datum/action/innate/mecha/mech_defense_mode.proc/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 5bdc5c882214..92e76eaa6d6d 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_REF(dash), target) + INVOKE_ASYNC(src, .proc/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_REF(fade_out)) + INVOKE_ASYNC(src, .proc/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_REF(dash)) + INVOKE_ASYNC(src, .proc/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 d62d695e1be7..fd810a352380 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_REF(hallucination_charge_around), 2, 8, 2, 0, 4) + INVOKE_ASYNC(src, .proc/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_REF(bloodattack), targets, prob(50)) + INVOKE_ASYNC(src, .proc/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_REF(devour), L), 2) + addtimer(CALLBACK(src, .proc/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_REF(blood_enrage_end)) + var/datum/callback/cb = CALLBACK(src, .proc/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_REF(charge), chargeat, delay, chargepast) + INVOKE_ASYNC(B, .proc/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 cca8a649353f..3a2036845298 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_REF(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/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_REF(unlock_phase2)), 4.4 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(swift_dash2), dir_to_target, 0, distance), wait_time) + addtimer(CALLBACK(src, .proc/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_REF(swift_dash2), move_dir, (times_ran + 1), distance_run), 0.7) + addtimer(CALLBACK(src, .proc/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_REF(emp_pulse2)), 1 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(sting_attack2), target), 2 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(summon_creatures2)), 2 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(create_phase2)), 30 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(phase2_dramatic), src), 3 SECONDS) + addtimer(CALLBACK(src, .proc/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 bd09f06f3521..4ded55413f8e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -132,6 +132,8 @@ 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 @@ -154,8 +156,8 @@ Difficulty: Very Hard visible_message("\"Die.\"") SLEEP_CHECK_DEATH(10) - INVOKE_ASYNC(src, PROC_REF(spiral_shoot), FALSE) - INVOKE_ASYNC(src, PROC_REF(spiral_shoot), TRUE) + INVOKE_ASYNC(src, .proc/spiral_shoot, FALSE) + INVOKE_ASYNC(src, .proc/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)) @@ -238,7 +240,7 @@ Difficulty: Very Hard /obj/effect/temp_visual/at_shield/Initialize(mapload, new_target) . = ..() target = new_target - INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, orbit), target, 0, FALSE, 0, 0, FALSE, TRUE) + INVOKE_ASYNC(src, /atom/movable/proc/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 96fbc8b5c4ec..4e0b461516bf 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_REF(blood_dash_2), dir_to_target, 0), (5 * dash_mod)) + addtimer(CALLBACK(src, .proc/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_REF(blood_dash_2), move_dir, (times_ran + 1)), (1.5 * dash_mod)) + addtimer(CALLBACK(src, .proc/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 14849bb58014..b2265782698d 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_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))) + 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))) 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, TYPE_PROC_REF(/obj/projectile/frost_orb, orb_explosion), projectile_speed_multiplier), 20) // make the orbs home in after a second + addtimer(CALLBACK(P, /obj/projectile/frost_orb/proc/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, TYPE_PROC_REF(/turf, ChangeTurf), reset_turf, null, CHANGETURF_INHERIT_AIR), duration, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(T, /turf.proc/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_REF(owner_moved)) + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/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 d1a8c3c825aa..6e12ba91e903 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_REF(lava_pools), amount) + INVOKE_ASYNC(src, .proc/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_REF(fire_line), turfs) + INVOKE_ASYNC(src, .proc/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_REF(fire_rain)) + INVOKE_ASYNC(src, .proc/fire_rain) var/range = 15 var/list/turfs = list() turfs = line_target(-40, range, at) - INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) + INVOKE_ASYNC(src, .proc/fire_line, turfs) turfs = line_target(0, range, at) - INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) + INVOKE_ASYNC(src, .proc/fire_line, turfs) turfs = line_target(40, range, at) - INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) + INVOKE_ASYNC(src, .proc/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_REF(fall), reset_time) + INVOKE_ASYNC(src, .proc/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, TYPE_PROC_REF(/turf, ChangeTurf), reset_turf, null, CHANGETURF_INHERIT_AIR), reset_time, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(T, /turf.proc/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_REF(flight), negative) + INVOKE_ASYNC(src, .proc/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_REF(fall), flame_hit) + INVOKE_ASYNC(src, .proc/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 4df97bac4a6f..1da36f8787d5 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_REF(blasts), target, GLOB.alldirs) + INVOKE_ASYNC(src, .proc/blasts, target, GLOB.alldirs) else if(prob(60)) - INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.cardinals) + INVOKE_ASYNC(src, .proc/blasts, target, GLOB.cardinals) else - INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.diagonals) + INVOKE_ASYNC(src, .proc/blasts, target, GLOB.diagonals) else //just release a burst of power - INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src)) + INVOKE_ASYNC(src, .proc/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, TYPE_PROC_REF(/atom, update_atom_colour)), 8) + addtimer(CALLBACK(src, /atom/proc/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_REF(blasts), target, GLOB.cardinals) + INVOKE_ASYNC(src, .proc/blasts, target, GLOB.cardinals) else - INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.diagonals) + INVOKE_ASYNC(src, .proc/blasts, target, GLOB.diagonals) SLEEP_CHECK_DEATH(6 + target_slowness) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) + addtimer(CALLBACK(src, /atom/proc/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, TYPE_PROC_REF(/atom, update_atom_colour)), 8) + addtimer(CALLBACK(src, /atom/proc/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_REF(blast_wall), T, d) + INVOKE_ASYNC(src, .proc/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_REF(arena_squares), T, d) + INVOKE_ASYNC(src, .proc/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_REF(blink), T) + INVOKE_ASYNC(src, .proc/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_REF(burst), get_turf(src)) + INVOKE_ASYNC(src, .proc/burst, get_turf(src)) else burst_range = 3 - 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 + 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 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_REF(seek_target)), 1) + addtimer(CALLBACK(src, .proc/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_REF(blast)) + INVOKE_ASYNC(src, .proc/blast) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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, TYPE_PROC_REF(/obj/item/hierophant_club, prepare_icon_update)) + INVOKE_ASYNC(H, /obj/item/hierophant_club.proc/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, TYPE_PROC_REF(/obj/item/hierophant_club, prepare_icon_update)) + INVOKE_ASYNC(H, /obj/item/hierophant_club.proc/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 b8f730d87920..5159efd266f1 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_REF(reset_charge)), 60) + addtimer(CALLBACK(src, .proc/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_REF(throw_thyself)), 20) + addtimer(CALLBACK(src, .proc/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, GLOBAL_PROC_REF(playsound), src, 'sound/effects/meteorimpact.ogg', 50 * size, TRUE, 2), INFINITY) + throw_at(target, 7, 1.1, src, FALSE, FALSE, CALLBACK(GLOBAL_PROC, .proc/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_REF(set_up_shot)), initial_firing_time) + addtimer(CALLBACK(src, .proc/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_REF(fire_beam), angle), shot_delay) + addtimer(CALLBACK(src, .proc/fire_beam, angle), shot_delay) ///Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction. /obj/structure/legionturret/proc/fire_beam(angle) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index a2cceb5a3aaa..38834a4e5cef 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_REF(EndAction)), deci) + addtimer(CALLBACK(src, .proc/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 59a58bd48d16..42836c58cf6b 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_REF(ground_slam), stomp_range, 1) + INVOKE_ASYNC(src, .proc/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 eb8302536e50..4376e9e0ae21 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_REF(cool_down)), 3000) + addtimer(CALLBACK(src, .proc/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 1d9f6e174660..45d4114da6e1 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_REF(fire_laser)), 1 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(end_laser)), 2 SECONDS) + addtimer(CALLBACK(src, .proc/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 fb06bfdf11ca..33bd3e6ba0f0 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_REF(return_elite)), 30) - INVOKE_ASYNC(src, PROC_REF(arena_checks)) + addtimer(CALLBACK(src, .proc/return_elite), 30) + INVOKE_ASYNC(src, .proc/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_REF(spawn_elite)), 30) + addtimer(CALLBACK(src, .proc/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_REF(spawn_elite), elitemind), 100) + addtimer(CALLBACK(src, .proc/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_REF(arena_checks)) + INVOKE_ASYNC(src, .proc/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_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. + 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. if(!QDELETED(src)) - addtimer(CALLBACK(src, PROC_REF(arena_checks)), 50) + addtimer(CALLBACK(src, .proc/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 7e2b1c3d990c..91fdf286aae7 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_REF(reset_rage)), 65) + addtimer(CALLBACK(src, .proc/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_REF(retract)), 10, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, .proc/retract), 10, TIMER_STOPPABLE) /obj/effect/temp_visual/goliath_tentacle/broodmother/patch/Initialize(mapload, new_spawner) . = ..() - INVOKE_ASYNC(src, PROC_REF(createpatch)) + INVOKE_ASYNC(src, .proc/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 ba8ae69093a4..0ead18b36ad9 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_REF(become_ghost)), 8) + addtimer(CALLBACK(src, .proc/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_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 2) - addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 4) + 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) if(health < maxHealth * 0.5) playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) - 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) + addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 10) + addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 12) + addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 14) /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_circleshot() var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) @@ -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_REF(herald_circleshot)), 5) + addtimer(CALLBACK(src, .proc/herald_circleshot), 5) if(health < maxHealth * 0.5) playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) - addtimer(CALLBACK(src, PROC_REF(herald_circleshot)), 15) - addtimer(CALLBACK(src, PROC_REF(unenrage)), 20) + addtimer(CALLBACK(src, .proc/herald_circleshot), 15) + addtimer(CALLBACK(src, .proc/unenrage), 20) /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_teleshot(target) ranged_cooldown = world.time + 30 @@ -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_REF(reactionshot), owner), 10) + addtimer(CALLBACK(src, .proc/reactionshot, owner), 10) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index f0b6dc3e8d54..8f991a400f18 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_REF(legionnaire_charge_2), dir_to_target, 0), 5) + addtimer(CALLBACK(src, .proc/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_REF(legionnaire_charge_2), move_dir, (times_ran + 1)), 2) + addtimer(CALLBACK(src, .proc/legionnaire_charge_2, move_dir, (times_ran + 1)), 2) /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/head_detach(target) ranged_cooldown = world.time + 10 @@ -160,7 +160,7 @@ /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/onHeadDeath() myhead = null - addtimer(CALLBACK(src, PROC_REF(regain_head)), 50) + addtimer(CALLBACK(src, .proc/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 4077f8b58949..33165a4b6dbe 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_REF(singular_shot_line), procsleft, angleused, T), 2) + addtimer(CALLBACK(src, .proc/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_REF(pandora_teleport_2), T, source), 2) + addtimer(CALLBACK(src, .proc/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_REF(pandora_teleport_3), T), 2) + addtimer(CALLBACK(src, .proc/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_REF(aoe_squares_2), T, 0, max_size), 2) + addtimer(CALLBACK(src, .proc/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_REF(aoe_squares_2), T, (ring + 1), max_size), 2) + addtimer(CALLBACK(src, .proc/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 e4eb7122d391..91f728b9b4b0 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_REF(Burrow)), chase_time) + addtimer(CALLBACK(src, .proc/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 c078196749fc..f17070695381 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_REF(tripanim)), 7, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, .proc/tripanim), 7, TIMER_STOPPABLE) if(!recursive) return var/list/directions = get_directions() @@ -321,27 +321,26 @@ /obj/effect/temp_visual/goliath_tentacle/proc/tripanim() deltimer(timerid) - timerid = addtimer(CALLBACK(src, PROC_REF(trip)), 3, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, .proc/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] wraps a mass of tentacles around [L]!") + visible_message("[src] grabs hold of [L]!") on_hit(L) latched = TRUE if(!latched) retract() else deltimer(timerid) - timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE) + 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)) -/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" @@ -393,13 +392,13 @@ shake_animation(20) visible_message("[src] convulses violently!! Get back!!") playsound(loc, 'sound/effects/magic.ogg', 100, TRUE) - addtimer(CALLBACK(src, PROC_REF(open_fire_2)), 1 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(spray_of_crystals)) + INVOKE_ASYNC(src,.proc/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 ee48ed624ee4..99807cff8210 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_REF(regenerate_icons)), CALLBACK(src, PROC_REF(regenerate_icons))) + AddComponent(/datum/component/udder, /obj/item/udder/gutlunch, CALLBACK(src, .proc/regenerate_icons), CALLBACK(src, .proc/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 474c9c5d9ca6..aa2446ca108a 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_REF(death)), 100) + addtimer(CALLBACK(src, .proc/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_REF(death)), 50) + addtimer(CALLBACK(src, .proc/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" = 5, + "Soldier" = 3, "Oldminer" = 8, "Kobold" = 5, - "SRM" = 6, - "Operative" = 5, - pick("Shadow", "YeOlde") = 4 + "Golem" = 6, + "SRM" = 10, + pick("Shadow", "YeOlde", "Operative", "Cultist") = 4 ) ) switch(type) @@ -796,6 +796,119 @@ 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 @@ -809,12 +922,10 @@ mask = /obj/item/clothing/mask/breath if("Operative") id_job = "Operative" - if(prob(40)) - outfit = /datum/outfit/syndicatecommandocorpse - else if(prob(5)) + if(prob(15)) outfit = /datum/outfit/syndicatestormtroopercorpse else - outfit = /datum/outfit/syndicateramzicorpse + outfit = /datum/outfit/syndicatecommandocorpse if("Waldo")//WE FINALLY FOUND HIM name = "Waldo" uniform = /obj/item/clothing/under/pants/jeans @@ -893,6 +1004,20 @@ 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 @@ -911,11 +1036,5 @@ 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/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) + 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) . = ..() 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 2315f6e61a4f..9f458f617c87 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_REF(owner_moved)) + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/owner_moved) if(!owner.stat) to_chat(owner, "You become frozen in a cube!") cube = icon('icons/effects/freeze.dmi', "ice_cube") diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 26a587f7f854..4c7ddedbbb1d 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_REF(stop_retreat)), 30) + addtimer(CALLBACK(src, .proc/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_REF(recovery_recharge)), 300) + addtimer(CALLBACK(src, .proc/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 cad59e7369b8..8c1e47926935 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_REF(get_player)) + INVOKE_ASYNC(src, .proc/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 7853b478033f..0eb4232e65fd 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_REF(remove_enemy), override = TRUE) + RegisterSignal(new_enemy, COMSIG_PARENT_QDELETING, .proc/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_REF(remove_enemy), override = TRUE) + RegisterSignal(new_enemy, COMSIG_PARENT_QDELETING, .proc/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 3375cd0a7269..c43c37a6bd21 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_REF(dragon_fire_line), T), delayFire) + addtimer(CALLBACK(src, .proc/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_REF(rift_empower), FALSE), 300) + addtimer(CALLBACK(src, .proc/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_REF(useGust), timer + 1), 1.5) + addtimer(CALLBACK(src, .proc/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_REF(reset_status)), 4 + ((tiredness * tiredness_mult) / 10)) + addtimer(CALLBACK(src, .proc/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 52ddcc72963a..e518955d91af 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_REF(bear_fruit)), growth_time) + addtimer(CALLBACK(src, .proc/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_REF(remove_vine), newVine) + RegisterSignal(newVine, COMSIG_PARENT_QDELETING, .proc/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 b77436c09c89..5eb2965fdc0e 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, TYPE_PROC_REF(/mob/living/simple_animal/hostile/asteroid/fugu, Deflate)), 100) + addtimer(CALLBACK(F, /mob/living/simple_animal/hostile/asteroid/fugu/proc/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 6f1db7aaf996..2de9fba68678 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_REF(setup_visuals)) + INVOKE_ASYNC(src, .proc/setup_visuals) /mob/living/simple_animal/hostile/zombie/proc/setup_visuals() var/datum/preferences/dummy_prefs = new @@ -58,6 +58,17 @@ 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 b880704c9bf9..5260c76e8a01 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_REF(AIprocess)) + INVOKE_ASYNC(src, .proc/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 cb4b76983563..d8d34a804958 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_REF(slime_move), user), 0.3 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(clear_memories_of), override = TRUE) + RegisterSignal(Target, COMSIG_PARENT_QDELETING, .proc/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_REF(clear_memories_of), override = TRUE) + RegisterSignal(Leader, COMSIG_PARENT_QDELETING, .proc/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_REF(clear_memories_of), override = TRUE) + RegisterSignal(new_friend, COMSIG_PARENT_QDELETING, .proc/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_REF(clear_memories_of), override = TRUE) + RegisterSignal(new_friend, COMSIG_PARENT_QDELETING, .proc/clear_memories_of, override = TRUE) /mob/living/simple_animal/slime/proc/remove_friend(friend) Friends -= friend diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 9af72b034998..d48db130f983 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_REF(run_examinate), examinify)) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/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_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) + 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) 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_REF(to_chat), src, msg), 3) // so the examine signal has time to fire and this will print after + addtimer(CALLBACK(GLOBAL_PROC, .proc/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_REF(to_chat), examined_mob, msg), 3) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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_REF(execute_mode))) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/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,22 +623,6 @@ 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 * @@ -705,7 +689,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 - REALTIMEOFDAY + var/time_left = GLOB.respawn_timers[usrkey] + respawn_timer - world.timeofday if(time_left > 0) to_chat(usr, "You still have [DisplayTimeText(time_left)] left before you can respawn.") return @@ -1095,14 +1079,6 @@ 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 @@ -1118,9 +1094,6 @@ log_played_names(ckey,newname) - if(GLOB.joined_player_list[oldname]) - update_joined_player_list(newname, oldname) - real_name = newname name = newname if(mind) @@ -1206,11 +1179,6 @@ 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() @@ -1435,7 +1403,7 @@ UnregisterSignal(active_storage, COMSIG_PARENT_QDELETING) active_storage = new_active_storage if(active_storage) - RegisterSignal(active_storage, COMSIG_PARENT_QDELETING, PROC_REF(active_storage_deleted)) + RegisterSignal(active_storage, COMSIG_PARENT_QDELETING, .proc/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 de1cb857ed4e..4c4a58378410 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -221,37 +221,23 @@ return sanitize(.) ///Shake the camera of the person viewing the mob SO REAL! -/proc/shake_camera(mob/recoilster, duration, strength=1) - if(!recoilster || !recoilster.client || duration < 1) +/proc/shake_camera(mob/M, duration, strength=1) + if(!M || !M.client || duration < 1) return - var/client/client_to_shake = recoilster.client - var/oldx = client_to_shake.pixel_x - var/oldy = client_to_shake.pixel_y + var/client/C = M.client + var/oldx = C.pixel_x + var/oldy = C.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(client_to_shake, pixel_x=rand(min,max), pixel_y=rand(min,max), time=1) + animate(C, 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 59b64f63d139..aa8a869da38a 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_REF(finish_monkeyize), tr_flags), TRANSFORMATION_DURATION, TIMER_UNIQUE) + transformation_timer = addtimer(CALLBACK(src, .proc/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_REF(finish_humanize), tr_flags), TRANSFORMATION_DURATION, TIMER_UNIQUE) + transformation_timer = addtimer(CALLBACK(src, .proc/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 a774799ada4c..6bc2919bea3b 100644 --- a/code/modules/modular_computers/computers/item/laptop_presets.dm +++ b/code/modules/modular_computers/computers/item/laptop_presets.dm @@ -20,15 +20,3 @@ /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 8fdad6474636..939cafb13f0c 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, TYPE_PROC_REF(/mob/living/silicon/robot, death)), 2 SECONDS, TIMER_UNIQUE) + addtimer(CALLBACK(modularInterface.borgo, /mob/living/silicon/robot/.proc/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 deleted file mode 100644 index bf234dfa3f22..000000000000 --- a/code/modules/modular_computers/file_system/programs/rilena.dm +++ /dev/null @@ -1,13 +0,0 @@ -/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 1506d7512fe0..d1c6335587a4 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_REF(react_to_del)) + RegisterSignal(S, COMSIG_PARENT_QDELETING, .proc/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_REF(send_alert), override = TRUE) - RegisterSignal(active, COMSIG_SUPERMATTER_DELAM_START_ALARM, PROC_REF(send_start_alert), override = TRUE) + RegisterSignal(active, COMSIG_SUPERMATTER_DELAM_ALARM, .proc/send_alert, override = TRUE) + RegisterSignal(active, COMSIG_SUPERMATTER_DELAM_START_ALARM, .proc/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 7d518c0b2f6d..f9ac4410f65d 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_REF(reset_order)), 100) + addtimer(CALLBACK(src, .proc/reset_order), 100) return TRUE return FALSE diff --git a/code/modules/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm index b10e25c84e7a..32f5756e0843 100644 --- a/code/modules/movespeed/modifiers/items.dm +++ b/code/modules/movespeed/modifiers/items.dm @@ -11,9 +11,5 @@ /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 c1ec7fb45078..8263b3c7dcf4 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -1,3 +1,6 @@ +/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 d6b0703ccb59..fb4994f00ad3 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.40 + multiplicative_slowdown = -0.15 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 db4267f6849f..673283bb5d2a 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_REF(ninjaboost_after)), 70) + addtimer(CALLBACK(src, .proc/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 cc30ddb9a882..bb9f88646a40 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_REF(ninitialize), delay, U, phase + 1), delay) + addtimer(CALLBACK(src, .proc/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_REF(deinitialize), delay, U, phase + 1), delay) + addtimer(CALLBACK(src, .proc/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 5244f2850188..420b7aad4055 100644 --- a/code/modules/overmap/_overmap_datum.dm +++ b/code/modules/overmap/_overmap_datum.dm @@ -38,9 +38,6 @@ /// 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) @@ -67,8 +64,6 @@ /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 @@ -222,27 +217,24 @@ 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 [dock_target] when it is already docked to another overmap datum ([docked_to])!.") + CRASH("Overmap datum [src] tried to dock to [docked_to] when it is already docked to another overmap datum.") - if(docking || current_docking_ticket) - return "Already docking!" + if(docking) + return docking = TRUE var/datum/docking_ticket/ticket = dock_target.pre_docked(src) - var/ticket_error = ticket?.docking_error - if(!ticket || ticket_error) - qdel(ticket) + if(!ticket || ticket.docking_error) docking = FALSE - return ticket_error || "Unknown docking error!" + return ticket?.docking_error || "Unknown docking error!" if(!pre_dock(dock_target, ticket)) - qdel(ticket) docking = FALSE - return ticket_error + return start_dock(dock_target, ticket) if(dock_time && !force) - dock_timer_id = addtimer(CALLBACK(src, PROC_REF(complete_dock), dock_target, ticket), dock_time) + dock_timer_id = addtimer(CALLBACK(src, .proc/complete_dock, dock_target, ticket), dock_time) else complete_dock(dock_target, ticket) @@ -297,9 +289,6 @@ 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) /** @@ -323,7 +312,7 @@ docking = TRUE if(dock_time && !force) - dock_timer_id = addtimer(CALLBACK(src, PROC_REF(complete_undock)), dock_time) + dock_timer_id = addtimer(CALLBACK(src, .proc/complete_undock), dock_time) else complete_undock() @@ -343,7 +332,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_REF(post_undocked), src) + INVOKE_ASYNC(old_docked_to, .proc/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 4e6465043246..f32ffde39716 100644 --- a/code/modules/overmap/docking_ticket.dm +++ b/code/modules/overmap/docking_ticket.dm @@ -9,40 +9,7 @@ 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 - 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 ..() + docking_error = _docking_error diff --git a/code/modules/overmap/helm.dm b/code/modules/overmap/helm.dm index 59fdee827907..e39b6bc88866 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_REF(jump_sequence), TRUE), JUMP_CHARGEUP_TIME, TIMER_STOPPABLE) + jump_timer = addtimer(CALLBACK(src, .proc/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_REF(do_jump)), 10 SECONDS) + addtimer(CALLBACK(src, .proc/do_jump), 10 SECONDS) return - jump_timer = addtimer(CALLBACK(src, PROC_REF(jump_sequence), TRUE), JUMP_CHARGE_DELAY, TIMER_STOPPABLE) + jump_timer = addtimer(CALLBACK(src, .proc/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 135f6b53ce45..e3461ced00de 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_REF(on_vital_delete)) + RegisterSignal(source_outpost, COMSIG_PARENT_QDELETING, .proc/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_REF(on_vital_delete)) + RegisterSignal(servant, COMSIG_PARENT_QDELETING, .proc/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_REF(bound_deleted)) + RegisterSignal(bound, COMSIG_PARENT_QDELETING, .proc/bound_deleted) return bound /** diff --git a/code/modules/overmap/missions/research_mission.dm b/code/modules/overmap/missions/research_mission.dm index 0e4996f7719d..c80686039f8d 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_REF(ship_moved)) + RegisterSignal(servant, COMSIG_OVERMAP_MOVED, .proc/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_appearance(updates) +/obj/machinery/mission_scanner/update_icon_state() . = ..() 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 69591c71dc8e..c6f0ed4a193e 100644 --- a/code/modules/overmap/objects/dynamic_datum.dm +++ b/code/modules/overmap/objects/dynamic_datum.dm @@ -27,8 +27,6 @@ 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 @@ -70,8 +68,6 @@ 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 @@ -90,7 +86,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("hh:mm")]") + Mob.play_screen_text("[planet_name]
    [station_time_timestamp_fancy("hh:mm")]") playsound(Mob, landing_sound, 50) @@ -181,21 +177,15 @@ 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 bcd6f98a4d8e..e4e32492e1de 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_REF(check_menu), user), require_near = !(issilicon(user) || isAdminGhostAI(user)), tooltips = TRUE) + var/result = show_radial_menu(user, src, opts, custom_check = CALLBACK(src, .proc/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 2c934bb94aab..9bbc5e29d25d 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_REF(move_elevator), next_move), floor_move_time) + addtimer(CALLBACK(src, .proc/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_REF(open_doors), cur_floor), door_open_time) - addtimer(CALLBACK(src, PROC_REF(close_doors), cur_floor), door_open_time+floor_idle_time) + 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) // Continue the check_move() chain. - addtimer(CALLBACK(src, PROC_REF(check_move)), door_open_time+floor_idle_time+(1 SECONDS)) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/obj/machinery/door, open)) + INVOKE_ASYNC(fl_door, /obj/machinery/door.proc/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, TYPE_PROC_REF(/obj/machinery/door, close)) + INVOKE_ASYNC(fl_door, /obj/machinery/door.proc/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_REF(door_qdelete)) + RegisterSignal(fl_door, COMSIG_PARENT_QDELETING, .proc/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 03c8c66e4838..b530ee7e0435 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_REF(AddItemOnPlat), - COMSIG_ATOM_CREATED = PROC_REF(AddItemOnPlat), - COMSIG_ATOM_EXITED = PROC_REF(RemoveItemFromPlat) + COMSIG_ATOM_ENTERED = .proc/AddItemOnPlat, + COMSIG_ATOM_CREATED = .proc/AddItemOnPlat, + COMSIG_ATOM_EXITED = .proc/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_REF(RemoveItemFromPlat)) + RegisterSignal(AM, COMSIG_PARENT_QDELETING, .proc/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 158827693335..8613d9ee62de 100644 --- a/code/modules/overmap/objects/outpost/outpost.dm +++ b/code/modules/overmap/objects/outpost/outpost.dm @@ -33,6 +33,9 @@ /// 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. @@ -62,7 +65,7 @@ Rename(gen_outpost_name()) fill_missions() - addtimer(CALLBACK(src, PROC_REF(fill_missions)), 10 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME) + addtimer(CALLBACK(src, .proc/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 @@ -211,13 +214,17 @@ ) 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("hh:mm")]") + M.play_screen_text("[name]
    [station_time_timestamp_fancy("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?" @@ -281,7 +288,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.current_docking_ticket && !h_dock.docked && \ + !(h_dock in landing_in_progress_docks) && !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 670a916721ae..fd30ff4e8ab8 100644 --- a/code/modules/overmap/objects/outpost/outpost_types.dm +++ b/code/modules/overmap/objects/outpost/outpost_types.dm @@ -2,13 +2,6 @@ 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") @@ -19,10 +12,6 @@ /datum/map_template/outpost/elevator_test name = "elevator_test" -/datum/map_template/outpost/elevator_indie - name = "elevator_indie" - - /* Independent Space Outpost //creative name! */ @@ -92,8 +81,8 @@ /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_indie - // Uses "default" hangars (indie_space). + elevator_template = /datum/map_template/outpost/elevator_test + // Uses "test" hangars. /datum/overmap/outpost/nanotrasen_asteroid token_icon_state = "station_asteroid_0" diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index da35c3b9df9c..a04355197dd6 100644 --- a/code/modules/overmap/ships/controlled_ship_datum.dm +++ b/code/modules/overmap/ships/controlled_ship_datum.dm @@ -77,9 +77,7 @@ shuttle_area.rename_area("[new_name] [initial(shuttle_area.name)]") if(!force) COOLDOWN_START(src, rename_cooldown, 5 MINUTES) - 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()) + priority_announce("The [oldname] has been renamed to the [new_name].", "Docking Announcement", sender_override = new_name, zlevel = shuttle_port.virtual_z()) return TRUE /** @@ -105,7 +103,7 @@ ship_account = new(name, source_template.starting_funds) #ifdef UNIT_TESTS - Rename("[source_template]", TRUE) + Rename("[source_template]") #else Rename("[source_template.prefix] [pick_list_replacements(SHIP_NAMES_FILE, pick(source_template.name_categories))]", TRUE) #endif @@ -116,7 +114,6 @@ . = ..() SSovermap.controlled_ships -= src helms.Cut() - QDEL_LIST(missions) LAZYCLEARLIST(owner_candidates) if(!QDELETED(shuttle_port)) shuttle_port.current_ship = null @@ -142,10 +139,8 @@ /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 @@ -290,7 +285,7 @@ ) LAZYSET(owner_candidates, H.mind, mind_info) H.mind.original_ship = WEAKREF(src) - RegisterSignal(H.mind, COMSIG_PARENT_QDELETING, PROC_REF(crew_mind_deleting)) + RegisterSignal(H.mind, COMSIG_PARENT_QDELETING, .proc/crew_mind_deleting) if(!owner_mob) set_owner_mob(H) @@ -317,7 +312,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_REF(check_owner)), 5 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME) + owner_check_timer_id = addtimer(CALLBACK(src, .proc/check_owner), 5 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME) return owner_mob = new_owner @@ -331,8 +326,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_REF(owner_mob_logout)) - RegisterSignal(owner_mob, COMSIG_MOB_GO_INACTIVE, PROC_REF(owner_mob_afk)) + RegisterSignal(owner_mob, COMSIG_MOB_LOGOUT, .proc/owner_mob_logout) + RegisterSignal(owner_mob, COMSIG_MOB_GO_INACTIVE, .proc/owner_mob_afk) if(!owner_act) owner_act = new(src) owner_act.Grant(owner_mob) diff --git a/code/modules/overmap/ships/ship_application.dm b/code/modules/overmap/ships/ship_application.dm index 7389759ea7ed..cd8a1f48f5e9 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_REF(applicant_deleting)) - RegisterSignal(parent_ship, COMSIG_PARENT_QDELETING, PROC_REF(important_deleting_during_apply)) + RegisterSignal(app_mob, COMSIG_PARENT_QDELETING, .proc/applicant_deleting) + RegisterSignal(parent_ship, COMSIG_PARENT_QDELETING, .proc/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 ed8f40a28f64..9c68b0ed8ae2 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_REF(on_docked_to_moved)) + RegisterSignal(docked_to, COMSIG_OVERMAP_MOVED, .proc/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_REF(on_docked_to_moved), override = TRUE) + RegisterSignal(dock_target, COMSIG_OVERMAP_MOVED, .proc/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_REF(tick_move)), timer, TIMER_STOPPABLE, SSovermap_movement) + movement_callback_id = addtimer(CALLBACK(src, .proc/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_REF(tick_move)), timer, TIMER_STOPPABLE, SSovermap_movement) + movement_callback_id = addtimer(CALLBACK(src, .proc/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 0dd736ce9936..b919078a97f7 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, TYPE_PROC_REF(/mob/living/carbon/human, fakefireextinguish)), 5, TIMER_UNIQUE) + addtimer(CALLBACK(H, /mob/living/carbon/human.proc/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 0107e440bec2..bde646712b96 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"] = game_timestamp() + request["time"] = gameTimestamp() 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 f85bd0bc77f9..bd232fd566e3 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_REF(make_paper_copy)), usr) + do_copy_loop(CALLBACK(src, .proc/make_paper_copy), usr) return TRUE // Devil contract paper. if(istype(paper_copy, /obj/item/paper/contract/employment)) - do_copy_loop(CALLBACK(src, PROC_REF(make_devil_paper_copy)), usr) + do_copy_loop(CALLBACK(src, .proc/make_devil_paper_copy), usr) return TRUE // Copying photo. if(photo_copy) - do_copy_loop(CALLBACK(src, PROC_REF(make_photo_copy)), usr) + do_copy_loop(CALLBACK(src, .proc/make_photo_copy), usr) return TRUE // Copying Documents. if(document_copy) - do_copy_loop(CALLBACK(src, PROC_REF(make_document_copy)), usr) + do_copy_loop(CALLBACK(src, .proc/make_document_copy), usr) return TRUE // ASS COPY. By Miauw if(ass) - do_copy_loop(CALLBACK(src, PROC_REF(make_ass_copy)), usr) + do_copy_loop(CALLBACK(src, .proc/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_REF(make_blank_print)), usr) + do_copy_loop(CALLBACK(src, .proc/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_REF(reset_busy)), i SECONDS) + addtimer(CALLBACK(src, .proc/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 c645b3108b47..24a256282fad 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_REF(reset_cooldown)), cooldown)//Small cooldown to prevent piles of flaming tickets + addtimer(CALLBACK(src, .proc/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 93b8319dbed7..7ef48e8e8240 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_REF(cooldown)), realcooldown) + addtimer(CALLBACK(src, .proc/cooldown), realcooldown) icon_state = state_off - INVOKE_ASYNC(src, PROC_REF(captureimage), target, user, flag, picture_size_x - 1, picture_size_y - 1) + INVOKE_ASYNC(src, .proc/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_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 5a9d9192dbbf..19bc21239ac4 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_REF(can_be_rotated))) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/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 e192c54673c7..4a9be6160916 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_REF(on_entered) + COMSIG_ATOM_ENTERED = .proc/on_entered ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/point/point.dm b/code/modules/point/point.dm index e959304efe4f..fd8a8e1a510c 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_REF(_pointed), A)) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/_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 03bb1651fd70..f8156a97a5d4 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_REF(update)), 5) + addtimer(CALLBACK(src, .proc/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_appearance() + update_icon() make_terminal() - addtimer(CALLBACK(src, PROC_REF(update)), 5) + addtimer(CALLBACK(src, .proc/update), 5) /obj/machinery/power/apc/examine(mob/user) . = ..() @@ -342,10 +342,12 @@ 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 - else if(cell.charge <= 0) + 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 @@ -358,10 +360,12 @@ 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 - else if(update_state & UPSTATE_BLUESCREEN) + 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) @@ -497,7 +501,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_appearance() + update_icon() return else if (!(machine_stat & BROKEN)) if(coverlocked && !(machine_stat & MAINT)) // locked... @@ -508,7 +512,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) return else opened = APC_COVER_OPENED - update_appearance() + update_icon() return /obj/machinery/power/apc/screwdriver_act(mob/living/user, obj/item/W) @@ -520,10 +524,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_appearance() + cell.update_icon() cell = null charging = APC_NOT_CHARGING - update_appearance() + update_icon() return else switch (has_electronics) @@ -540,14 +544,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) else to_chat(user, "There is nothing to secure!") return - update_appearance() + update_icon() 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_appearance() + update_icon() /obj/machinery/power/apc/wirecutter_act(mob/living/user, obj/item/W) . = ..() @@ -595,7 +599,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_appearance() + update_icon() else if (W.GetID()) togglelock(user) else if (istype(W, /obj/item/stack/cable_coil) && opened) @@ -673,7 +677,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_appearance() + update_icon() else to_chat(user, "[src] has both electronics and a cell.") return @@ -688,7 +692,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_appearance() + update_icon() return if (has_electronics) to_chat(user, "You cannot repair this APC until you remove the electronics still inside!") @@ -702,7 +706,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_appearance() + update_icon() 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() @@ -750,7 +754,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_appearance() + update_icon() return TRUE else to_chat(user, "[src] has both electronics and a cell.") @@ -777,7 +781,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_appearance() + update_icon() updateUsrDialog() else to_chat(user, "Access denied.") @@ -807,7 +811,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_appearance() + update_icon() /obj/machinery/power/apc/emag_act(mob/user) if(!(obj_flags & EMAGGED) && !malfhack) @@ -823,7 +827,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_appearance() + update_icon() // attack with hand - remove cell (if cover open) or interact with the APC @@ -886,10 +890,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_appearance() + cell.update_icon() src.cell = null charging = APC_NOT_CHARGING - src.update_appearance() + src.update_icon() return if((machine_stat & MAINT) && !opened) //no board; no interface return @@ -1023,7 +1027,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_appearance() + update_icon() . = TRUE if("cover") coverlocked = !coverlocked @@ -1038,20 +1042,20 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) chargemode = !chargemode if(!chargemode) charging = APC_NOT_CHARGING - update_appearance() + update_icon() . = TRUE if("channel") if(params["eqp"]) equipment = setsubsystem(text2num(params["eqp"])) - update_appearance() + update_icon() update() else if(params["lgt"]) lighting = setsubsystem(text2num(params["lgt"])) - update_appearance() + update_icon() update() else if(params["env"]) environ = setsubsystem(text2num(params["env"])) - update_appearance() + update_icon() update() . = TRUE if("overload") @@ -1072,14 +1076,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) malfhidehack(usr) //EndWS Edit - Malf AI Rework if("reboot") failure_timer = 0 - update_appearance() + update_icon() 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, TYPE_PROC_REF(/obj/machinery/light, update), FALSE) + INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) CHECK_TICK return 1 @@ -1090,7 +1094,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_appearance() + update_icon() /obj/machinery/power/apc/proc/malfhack(mob/living/silicon/ai/malf) if(!istype(malf)) @@ -1102,7 +1106,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) return to_chat(malf, "Beginning override of APC systems. This takes some time, and you cannot perform other actions during the process.") malf.malfhack = src - malf.malfhacking = addtimer(CALLBACK(malf, TYPE_PROC_REF(/mob/living/silicon/ai, malfhacked), src), 600, TIMER_STOPPABLE) + malf.malfhacking = addtimer(CALLBACK(malf, /mob/living/silicon/ai/.proc/malfhacked, src), 600, TIMER_STOPPABLE) var/atom/movable/screen/alert/hackingapc/A A = malf.throw_alert("hackingapc", /atom/movable/screen/alert/hackingapc) @@ -1125,14 +1129,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, TYPE_PROC_REF(/obj/machinery/power/apc, malfunhidehack), malf), duration, TIMER_STOPPABLE) + malf.malfhacking = addtimer(CALLBACK(src, /obj/machinery/power/apc/proc/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_appearance() + update_icon() /obj/machinery/power/apc/proc/malfunhidehack(mob/living/silicon/ai/malf) if(src.machine_stat & BROKEN) @@ -1142,7 +1146,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) malf.clear_alert("hackingapc") malfhackhide = -1 - malfhackhidecooldown = addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/power/apc, malfhiderestore), malf), 600, TIMER_STOPPABLE) + malfhackhidecooldown = addtimer(CALLBACK(src, /obj/machinery/power/apc/proc/malfhiderestore, malf), 600, TIMER_STOPPABLE) /obj/machinery/power/apc/proc/malfhiderestore(mob/living/silicon/ai/malf) if(src.machine_stat & BROKEN) @@ -1490,7 +1494,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) environ = APC_CHANNEL_OFF update_appearance() update() - addtimer(CALLBACK(src, PROC_REF(reset), APC_RESET_EMP), 600) + addtimer(CALLBACK(src, .proc/reset, APC_RESET_EMP), 600) /obj/machinery/power/apc/blob_act(obj/structure/blob/B) set_broken() @@ -1516,7 +1520,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) return if(cell && cell.charge>=20) cell.use(20) - INVOKE_ASYNC(src, PROC_REF(break_lights)) + INVOKE_ASYNC(src, .proc/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 3f85acdddfe6..cec3440d1319 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_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 + 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 // 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 0f84b5571382..66f1f74f11c1 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 //Makes it incompatible with RPED + rating = 0 //gun batteries now incompatible with RPED WS edit /obj/item/stock_parts/cell/gun/empty/Initialize() . = ..() @@ -476,19 +476,6 @@ 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 24b106f0241f..7f2f3c3efbe9 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_REF(update), 0), 1) + addtimer(CALLBACK(src, .proc/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_REF(broken_sparks)), delay, TIMER_UNIQUE | TIMER_NO_HASH_WAIT) + addtimer(CALLBACK(src, .proc/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_REF(on_entered) + COMSIG_ATOM_ENTERED = .proc/on_entered ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/power/multiz.dm b/code/modules/power/multiz.dm index b98f107055cb..2ce27c356cfd 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_REF(find_relays)), 30) + addtimer(CALLBACK(src, .proc/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_REF(refresh)), 20) //Wait a bit so we can find the one below, then get powering + addtimer(CALLBACK(src, .proc/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 1645afe9832b..b5c2a2a35b89 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, GLOBAL_PROC_REF(explosion), get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 7d870f8523c8..a0a90a4a1045 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_REF(consume), user), 5) + addtimer(CALLBACK(src, .proc/consume, user), 5) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 77c400ae2b07..289c43c3e3bc 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_REF(on_entered) + COMSIG_ATOM_ENTERED = .proc/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_REF(clear_shock)), 5) + addtimer(CALLBACK(src, .proc/clear_shock), 5) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index d17e12264706..05bd1e648032 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/gun/laser/heavy_laser.ogg' + var/projectile_sound = 'sound/weapons/emitter.ogg' var/datum/effect_system/spark_spread/sparks var/obj/item/gun/energy/gun @@ -41,6 +41,20 @@ 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() @@ -99,7 +113,7 @@ /obj/machinery/power/emitter/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) /obj/machinery/power/emitter/proc/can_be_rotated(mob/user,rotation_type) if (anchored) @@ -357,26 +371,6 @@ 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 d3e7a31d4cb9..d11479a5ac74 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_REF(cleanup)) - addtimer(CALLBACK(src, PROC_REF(cool_down)), 50) + INVOKE_ASYNC(src, .proc/cleanup) + addtimer(CALLBACK(src, .proc/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_REF(cool_down)), 50) + addtimer(CALLBACK(src, .proc/cool_down), 50) /obj/machinery/field/generator/proc/turn_on() active = FG_CHARGING - addtimer(CALLBACK(src, PROC_REF(warm_up)), 50) + addtimer(CALLBACK(src, .proc/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_REF(warm_up)), 50) + addtimer(CALLBACK(src, .proc/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_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(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(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_REF(notify_admins)) + INVOKE_ASYNC(src, .proc/notify_admins) move_resist = initial(move_resist) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 81f12838c0d3..ee61bccbad51 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_REF(begin_the_end)) + INVOKE_ASYNC(GLOBAL_PROC, .proc/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_REF(cult_ending_helper), 2) + INVOKE_ASYNC(GLOBAL_PROC, .proc/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_REF(cult_ending_helper), 2) + INVOKE_ASYNC(GLOBAL_PROC, .proc/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_REF(cult_ending_helper), 2) + INVOKE_ASYNC(GLOBAL_PROC, .proc/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_REF(cult_ending_helper)), 120) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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, GLOBAL_PROC_REF(ending_helper))) + Cinematic(CINEMATIC_CULT_FAIL,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) else if(ending_type) //no explosion - Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) + Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) else // explosion - Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) + Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC,/proc/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_REF(narsie_spawn_animation_end)), 3.5 SECONDS) + addtimer(CALLBACK(src, .proc/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 b593d3f546bb..01e4d0324857 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_REF(move)), 1) + addtimer(CALLBACK(src, .proc/move), 1) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered) + COMSIG_ATOM_ENTERED = .proc/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 93ed8a5d606d..d14bacdf0a0e 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_REF(bluespace_reaction)) + RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, .proc/bluespace_reaction) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered) + COMSIG_ATOM_ENTERED = .proc/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_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))) + "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))) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 6068b8725f10..dfe24e46cb5b 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_REF(emp_end), output_attempt), SMESEMPTIME, TIMER_UNIQUE | TIMER_OVERRIDE) + emp_timer = addtimer(CALLBACK(src, .proc/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 8ca409051d6c..b35974b8b930 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_REF(queue_update_solar_exposure)) + RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/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_REF(timed_track)) + RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/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 5593744219d0..f34a268738d5 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_REF(call_explode)) + RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, .proc/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, TYPE_PROC_REF(/mob/living, reset_shocked)), 10) + addtimer(CALLBACK(creature, /mob/living/proc/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 82372d221baf..f7ae1b53bb98 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_REF(reset_shocked)), 10) + addtimer(CALLBACK(src, .proc/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_REF(reset_shocked)), 10) + addtimer(CALLBACK(src, .proc/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 fbece73764a4..88762101c32f 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_REF(new_mini_ball)), 100) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/mob/living, reset_shocked)), 10) + addtimer(CALLBACK(closest_mob, /mob/living/proc/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 bfd0464f5e13..4b3f9b760fd6 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_REF(sun_update)) + RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/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 e0b5c0608b9d..6222f147861e 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 + var/firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect /// 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,8 +36,6 @@ 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" @@ -106,10 +104,7 @@ 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, 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. + 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. else if(T && T.bullet_bounce_sound) - 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. + 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. diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index b9237ea91b4d..15abfdb02e10 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -127,11 +127,3 @@ 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 63c8340e99bd..ff6c42284055 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -86,10 +86,3 @@ 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 b297ee30e776..9f74727086e5 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -9,8 +9,6 @@ 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 c82e01306c0a..25dae693dbab 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/gun/laser/nt-fire.ogg' + fire_sound = 'sound/weapons/laser.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 dd68cd2e5619..05653dab0bd8 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -2,36 +2,15 @@ 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/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 +/obj/item/ammo_casing/energy/laser/smg //WS edit: fun 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 @@ -71,7 +50,7 @@ projectile_type = /obj/projectile/beam/pulse e_cost = 2000 select_name = "DESTROY" - fire_sound = 'sound/weapons/gun/laser/heavy_laser.ogg' + fire_sound = 'sound/weapons/pulse.ogg' /obj/item/ammo_casing/energy/laser/bluetag projectile_type = /obj/projectile/beam/lasertag/bluetag @@ -172,5 +151,4 @@ 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 d64195150e0a..692c87db2ad6 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -78,16 +78,8 @@ 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 c47a88b38830..8879981b1e16 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -46,4 +46,3 @@ /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 e8c47f60f85b..0336744ec748 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -150,7 +150,6 @@ max_ammo = 22 multiple_sprites = AMMO_BOX_FULL_EMPTY item_flags = NO_MAT_REDEMPTION - instant_load = TRUE // Ammo Boxes @@ -367,21 +366,3 @@ 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 fa3797707ce6..ca497d6560cb 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 and incredibly powerful bullets, but are easily stopped by even a sliver of armor." + desc = "A 10-round magazine for the Model H pistol. Ferromagnetic slugs are slow, but do incredible damage with significant armor penetration." 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 402db1502853..192a9f723857 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 = 100 + max_ammo = 50 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(), 20)]" + icon_state = "[base_icon_state]-[round(ammo_count(), 10)]" diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index 0c25c8a2282e..ca4702b641d7 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 = "9x19p" + icon_state = "9x19pR" ammo_type = /obj/item/ammo_casing/c10mm/rubber /obj/item/ammo_box/magazine/m45 @@ -136,12 +136,3 @@ 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 786bf8e9dfb6..86fef186652b 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 = 100 //brrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr + max_ammo = 50 //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 = 30 + max_ammo = 20 /obj/item/ammo_box/magazine/ak47/update_icon_state() . = ..() @@ -117,14 +117,3 @@ /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 6e561f6d26d5..06527ae49197 100644 --- a/code/modules/projectiles/boxes_magazines/internal/gauss.dm +++ b/code/modules/projectiles/boxes_magazines/internal/gauss.dm @@ -3,4 +3,3 @@ 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 7715d31b1323..13b007e229e0 100644 --- a/code/modules/projectiles/boxes_magazines/internal/revolver.dm +++ b/code/modules/projectiles/boxes_magazines/internal/revolver.dm @@ -32,10 +32,3 @@ /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 d6b9e05413a9..f91fa467cfef 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1,22 +1,7 @@ -#define DUALWIELD_PENALTY_EXTRA_MULTIPLIER 1.6 +#define DUALWIELD_PENALTY_EXTRA_MULTIPLIER 1.4 #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." @@ -36,38 +21,36 @@ 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 + var/dry_fire_text = "click" //change this on non-gun things WS Edit - Dry firing 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. @@ -94,84 +77,14 @@ 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) @@ -185,8 +98,6 @@ 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) @@ -223,13 +134,6 @@ 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) @@ -242,28 +146,16 @@ //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) - 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!") + to_chat(user, "*[dry_fire_text]*") //WS Edit - Dry firing + playsound(src, dry_fire_sound, 30, TRUE) /obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1) - 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(recoil) + shake_camera(user, recoil + 1, recoil) if(suppressed) playsound(user, suppressed_sound, suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) @@ -332,8 +224,9 @@ if(check_botched(user)) return - if(weapon_weight == WEAPON_HEAVY && (!wielded)) - to_chat(user, "You need a more secure grip to fire [src]!") + 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]!") return //DUAL (or more!) WIELDING var/bonus_spread = 0 @@ -346,7 +239,7 @@ else if(G.can_trigger_gun(user)) bonus_spread += dual_wield_spread loop_counter++ - addtimer(CALLBACK(G, TYPE_PROC_REF(/obj/item/gun, process_fire), target, user, TRUE, params, null, bonus_spread), loop_counter) + addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, TRUE, params, null, bonus_spread), loop_counter) return process_fire(target, user, TRUE, params, null, bonus_spread) @@ -429,12 +322,8 @@ var/sprd = 0 var/randomized_gun_spread = 0 var/rand_spr = rand() - - if(wielded_fully && spread) + if(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) @@ -442,7 +331,7 @@ if(burst_size > 1) firing_burst = TRUE for(var/i = 1 to burst_size) - 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)) + 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)) 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. @@ -464,9 +353,8 @@ return process_chamber() update_appearance() - if(fire_delay) - semicd = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_semicd)), fire_delay) + semicd = TRUE + addtimer(CALLBACK(src, .proc/reset_semicd), fire_delay) if(user) user.update_inv_hands() @@ -521,51 +409,39 @@ 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 - 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") + 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. return remove_gun_attachment(user, I, gun_light, "unscrewed") - else if(picked_option == "Knife") + + else if(bayonet && can_bayonet) //if it has a bayonet, and the bayonet can be removed 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(.) @@ -674,7 +550,7 @@ gun_light.update_brightness() to_chat(user, "You toggle the gunlight [gun_light.on ? "on":"off"].") - playsound(user, gun_light.on ? gun_light.toggle_on_sound : gun_light.toggle_off_sound, 40, TRUE) + playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) update_gunlight() /obj/item/gun/proc/update_gunlight() @@ -683,19 +559,13 @@ 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) @@ -724,15 +594,6 @@ 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 @@ -776,111 +637,6 @@ /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 // ///////////// @@ -921,7 +677,7 @@ zoomed = forced_zoom if(zoomed) - RegisterSignal(user, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate)) + RegisterSignal(user, COMSIG_ATOM_DIR_CHANGE, .proc/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 a8e2a201c81a..9efbc6169b25 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -6,9 +6,6 @@ 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 @@ -84,15 +81,12 @@ 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) @@ -226,27 +220,21 @@ playsound(src, eject_empty_sound, eject_sound_volume, eject_sound_vary) magazine.forceMove(drop_location()) var/obj/item/ammo_box/magazine/old_mag = magazine - 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.") + if (insert_magazine(user, tac_load, FALSE)) + to_chat(user, "You perform a tactical reload on \the [src].") else - to_chat(user, "Your reload was interupted!") - return - + 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() + if (display_message) + to_chat(user, "You pull the [magazine_wording] out of \the [src].") 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) @@ -354,7 +342,7 @@ return return ..() -/obj/item/gun/ballistic/unique_action(mob/living/user) +/obj/item/gun/ballistic/attack_self(mob/living/user) if(HAS_TRAIT(user, TRAIT_GUNFLIP)) if(flip_cooldown <= world.time) if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) @@ -364,10 +352,13 @@ 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 66f6699321c2..7ec610bbc33c 100644 --- a/code/modules/projectiles/guns/ballistic/assault.dm +++ b/code/modules/projectiles/guns/ballistic/assault.dm @@ -1,31 +1,12 @@ /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 @@ -33,8 +14,6 @@ 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() . = ..() @@ -110,13 +89,6 @@ 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() . = ..() @@ -161,9 +133,6 @@ 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() . = ..() @@ -188,127 +157,7 @@ fire_delay = initial(fire_delay) to_chat(user, "You switch to [burst_size]-rnd Matter.") - playsound(user, 'sound/weapons/gun/general/selector.ogg', 100, TRUE) + playsound(user, 'sound/weapons/empty.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 841e36927cb5..b159376b547b 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -14,13 +14,6 @@ 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) @@ -46,7 +39,7 @@ fire_delay = initial(fire_delay) to_chat(user, "You switch to [burst_size]-rnd burst.") - playsound(user, 'sound/weapons/gun/general/selector.ogg', 100, TRUE) + playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) update_appearance() for(var/X in actions) var/datum/action/A = X @@ -77,14 +70,6 @@ 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" @@ -132,6 +117,7 @@ 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 @@ -141,10 +127,6 @@ 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" @@ -160,10 +142,6 @@ 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 b8b8e36e04b7..993c616f885f 100644 --- a/code/modules/projectiles/guns/ballistic/gauss.dm +++ b/code/modules/projectiles/guns/ballistic/gauss.dm @@ -17,14 +17,6 @@ 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" @@ -40,12 +32,6 @@ 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" @@ -63,7 +49,6 @@ 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" @@ -79,10 +64,6 @@ 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 3209513efc20..dfe8a52cde19 100644 --- a/code/modules/projectiles/guns/ballistic/hmg.dm +++ b/code/modules/projectiles/guns/ballistic/hmg.dm @@ -6,19 +6,12 @@ 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 = "A heavy machine gun, designated 'L6 SAW'. Chambered in 7.12x82mm." + desc = "An HMG designated 'L6 SAW'. Has 'Aussec Armoury - 490 FS' engraved on the receiver below the designation. Chambered in 7.12x82mm." icon_state = "l6" item_state = "l6closedmag" base_icon_state = "l6" @@ -32,12 +25,11 @@ 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.1 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) /obj/item/gun/ballistic/automatic/hmg/l6_saw/examine(mob/user) . = ..() @@ -91,8 +83,7 @@ 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.1 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index c7d73c5459bc..18030833e6cd 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -50,7 +50,6 @@ 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 @@ -63,7 +62,6 @@ cartridge_wording = "rocket" empty_indicator = TRUE tac_reloads = FALSE - manufacturer = MANUFACTURER_SCARBOROUGH /obj/item/gun/ballistic/rocketlauncher/unrestricted pin = /obj/item/firing_pin @@ -81,4 +79,3 @@ 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 97974ff341fb..d03b3992b741 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" + name = "stechkin pistol" 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 //spam it as fast as you can + fire_delay = 0 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_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' + 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' vary_fire_sound = FALSE rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' @@ -25,14 +25,6 @@ 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 @@ -43,22 +35,16 @@ install_suppressor(S) /obj/item/gun/ballistic/automatic/pistol/m1911 - name = "\improper M1911A8" + name = "\improper M1911" 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/m1911.ogg' - rack_sound = 'sound/weapons/gun/pistol/m1911_cocked.ogg' + fire_sound = 'sound/weapons/gun/pistol/shot.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_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 @@ -71,20 +57,10 @@ mag_type = /obj/item/ammo_box/magazine/m50 can_suppress = FALSE mag_display = TRUE - fire_sound = 'sound/weapons/gun/pistol/deagle.ogg' + fire_sound = 'sound/weapons/gun/rifle/shot_alt.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." @@ -111,7 +87,6 @@ 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) @@ -131,12 +106,6 @@ 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 @@ -146,7 +115,6 @@ 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 @@ -160,10 +128,6 @@ 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) ..() @@ -213,11 +177,6 @@ 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" @@ -230,10 +189,6 @@ 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" @@ -244,10 +199,6 @@ 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() . = ..() @@ -314,17 +265,3 @@ 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 454a790728d2..b1c70e7a73b6 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -4,7 +4,6 @@ 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 @@ -16,53 +15,7 @@ tac_reloads = FALSE var/spin_delay = 10 var/recent_spin = 0 - 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() + fire_delay = 7 /obj/item/gun/ballistic/revolver/chamber_round(spin_cylinder = TRUE) if(spin_cylinder) @@ -70,6 +23,10 @@ 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() @@ -117,9 +74,9 @@ . += "It can be spun with alt+click" /obj/item/gun/ballistic/revolver/detective - name = "\improper Hunter's Pride Detective Special" + name = "\improper Colt Detective Special" desc = "A compact and ridiculously old-fashioned law enforcement firearm. Uses .38 special rounds." - fire_sound = 'sound/weapons/gun/revolver/shot_light.ogg' + fire_sound = 'sound/weapons/gun/revolver/shot.ogg' icon_state = "detective" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 obj_flags = UNIQUE_RENAME @@ -133,9 +90,6 @@ "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)) @@ -186,10 +140,6 @@ 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" @@ -198,17 +148,12 @@ 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 @@ -218,12 +163,6 @@ 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. @@ -234,7 +173,6 @@ 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() . = ..() @@ -330,9 +268,8 @@ user.Paralyze(80) /obj/item/gun/ballistic/revolver/srm - name = "SRM Standard Issue .357 Revolver" //should have used the pepperbox... + name = "SRM Standard Issue .357 Revolver" 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" @@ -340,22 +277,4 @@ icon_state = "pepperbox" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/pepperbox spread = 20 - 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 + fire_delay = 4 diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 6506edc4bb1d..ac80dc47e890 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -17,13 +17,6 @@ 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" : ""]" @@ -73,7 +66,6 @@ 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) . = ..() @@ -97,18 +89,6 @@ 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." @@ -117,15 +97,12 @@ 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" @@ -181,4 +158,3 @@ 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 de8b923fb967..e333122e2e0a 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -26,15 +26,6 @@ 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 @@ -50,37 +41,13 @@ /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) ..() @@ -178,14 +145,6 @@ 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 @@ -197,7 +156,6 @@ 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" @@ -210,7 +168,6 @@ empty_alarm = FALSE empty_indicator = FALSE special_mags = FALSE - manufacturer = MANUFACTURER_MINUTEMAN ///////////////////////////// // DOUBLE BARRELED SHOTGUN // @@ -241,7 +198,6 @@ 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) . = ..() @@ -252,13 +208,6 @@ . = ..() 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 // @@ -423,7 +372,6 @@ 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 @@ -434,7 +382,6 @@ 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))) @@ -473,21 +420,10 @@ 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/ak47_cocked.ogg' + rack_sound = 'sound/weapons/gun/rifle/winchester_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." @@ -519,7 +455,6 @@ 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 @@ -534,7 +469,7 @@ inhand_x_dimension = 32 inhand_y_dimension = 32 mag_type = /obj/item/ammo_box/magazine/internal/shot/contender - fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg' + fire_sound = 'sound/weapons/gun/rifle/shot.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 @@ -548,22 +483,9 @@ 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 7efd0a579925..e617173c932e 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -1,16 +1,6 @@ /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" @@ -21,11 +11,10 @@ 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.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) /obj/item/gun/ballistic/automatic/smg/proto/unrestricted pin = /obj/item/firing_pin @@ -43,11 +32,10 @@ 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.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) /obj/item/gun/ballistic/automatic/smg/c20r/unrestricted pin = /obj/item/firing_pin @@ -68,7 +56,6 @@ 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 @@ -76,11 +63,10 @@ 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.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) /obj/item/gun/ballistic/automatic/smg/wt550 name = "\improper WT-550 Automatic Rifle" @@ -98,52 +84,38 @@ 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.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.25 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 - - 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 + rack_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' /obj/item/gun/ballistic/automatic/smg/mini_uzi/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.1 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.25 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 //you guys remember when the autorifle was chambered in 9mm + mag_type = /obj/item/ammo_box/magazine/smgm9mm/rubber //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.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) /obj/item/gun/ballistic/automatic/smg/m90 name = "\improper M-90gl Carbine" @@ -160,11 +132,6 @@ 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() . = ..() @@ -219,7 +186,7 @@ burst_size = 1 fire_delay = 0 to_chat(user, "You switch to semi-auto.") - playsound(user, 'sound/weapons/gun/general/selector.ogg', 100, TRUE) + playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) update_appearance() return @@ -236,11 +203,10 @@ 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.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) /obj/item/gun/ballistic/automatic/smg/thompson/drum name = "\improper Chicago Typewriter" @@ -254,15 +220,11 @@ item_state = "cm5" mag_type = /obj/item/ammo_box/magazine/smgm9mm weapon_weight = WEAPON_LIGHT - fire_sound = 'sound/weapons/gun/smg/smg_heavy.ogg' - manufacturer = MANUFACTURER_MINUTEMAN + fire_sound = 'sound/weapons/gun/smg/smg_light.ogg' /obj/item/gun/ballistic/automatic/smg/cm5/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) - -/obj/item/gun/ballistic/automatic/smg/cm5/no_mag - spawnwithmagazine = FALSE + AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) /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 4ce2819a902e..269baa7c83bf 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -12,9 +12,6 @@ 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() . = ..() @@ -35,8 +32,6 @@ 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 @@ -63,8 +58,6 @@ 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() . = ..() @@ -88,9 +81,6 @@ 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" @@ -101,9 +91,6 @@ 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 @@ -125,9 +112,6 @@ 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 229d49c4a8c6..b186569afad4 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -4,12 +4,6 @@ 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 @@ -99,7 +93,7 @@ recharge_newshot(TRUE) update_appearance() -/obj/item/gun/energy/unique_action(mob/living/user) +/obj/item/gun/energy/attack_self(mob/living/user as mob) if(ammo_type.len > 1) select_fire(user) update_appearance() @@ -128,33 +122,29 @@ 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/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/get_gun_attachments() - if(cell && !internal_cell) - attachment_options += list("Cell" = image(icon = cell.icon, icon_state = cell.icon_state)) - ..() +/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/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/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/can_shoot(visuals) - if(safety && !visuals) - return FALSE +/obj/item/gun/energy/can_shoot() var/obj/item/ammo_casing/energy/shot = ammo_type[select] return !QDELETED(cell) ? (cell.charge >= shot.e_cost) : FALSE @@ -206,7 +196,6 @@ 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 @@ -228,15 +217,10 @@ . = ..() if(!automatic_charge_overlays || QDELETED(src)) return - // 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 + // Every time I see code this "flexible", a kitten fucking dies 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]" @@ -259,7 +243,7 @@ ///Used by update_icon_state() and update_overlays() /obj/item/gun/energy/proc/get_charge_ratio() - return can_shoot(visuals = TRUE) ? CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) : 0 + return can_shoot() ? 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) @@ -284,18 +268,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_non_living, 50, TRUE) + playsound(user, BB.hitsound, 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_non_living, 50, TRUE) + playsound(user, BB.hitsound, 50, TRUE) cell.use(E.e_cost) qdel(A) . = "" else playsound(user, E.fire_sound, 50, TRUE) - playsound(user, BB.hitsound_non_living, 50, TRUE) + playsound(user, BB.hitsound, 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 223cdc09e157..1e4af286d44f 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -6,11 +6,10 @@ ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) modifystate = 1 can_flashlight = TRUE - ammo_x_offset = 2 + ammo_x_offset = 3 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 @@ -35,35 +34,19 @@ set_gun_light(new /obj/item/flashlight/seclite(src)) return ..() -/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' +/obj/item/gun/energy/e_gun/stun + name = "tactical energy gun" + desc = "Military issue energy gun, is able to fire stun rounds." icon_state = "energytac" ammo_x_offset = 2 - 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) + ammo_type = list(/obj/item/ammo_casing/energy/electrode/spec, /obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) /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 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." + 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." 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" @@ -80,21 +63,18 @@ 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 = "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." + 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." icon_state = "capgun_hos" item_state = "hoslaser" selfcharge = 1 - manufacturer = MANUFACTURER_SHARPLITE /obj/item/gun/energy/e_gun/dragnet name = "\improper DRAGnet" @@ -140,7 +120,6 @@ 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) @@ -215,13 +194,9 @@ 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 sweet 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 sweed 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 @@ -233,17 +208,3 @@ 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 5f39d407d749..7928094cab13 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -18,10 +18,6 @@ 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 @@ -49,17 +45,11 @@ /obj/item/gun/energy/kinetic_accelerator/crowbar_act(mob/living/user, obj/item/I) . = TRUE - if(LAZYLEN(modkits)) - var/list/choose_options = list() + if(modkits.len) + to_chat(user, "You pry the modifications out.") + I.play_tool_sound(src, 100) for(var/obj/item/borg/upgrade/modkit/M in modkits) - 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) + M.uninstall(src) else to_chat(user, "There are no modifications currently installed.") @@ -123,7 +113,7 @@ if(!QDELING(src) && !holds_charge) // Put it on a delay because moving item from slot to hand // calls dropped(). - addtimer(CALLBACK(src, PROC_REF(empty_if_not_held)), 2) + addtimer(CALLBACK(src, .proc/empty_if_not_held), 2) /obj/item/gun/energy/kinetic_accelerator/proc/empty_if_not_held() if(!ismob(loc)) @@ -154,7 +144,7 @@ carried = 1 deltimer(recharge_timerid) - recharge_timerid = addtimer(CALLBACK(src, PROC_REF(reload)), recharge_time * carried, TIMER_STOPPABLE) + recharge_timerid = addtimer(CALLBACK(src, .proc/reload), recharge_time * carried, TIMER_STOPPABLE) /obj/item/gun/energy/kinetic_accelerator/emp_act(severity) return diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 0c02e2ff90e8..4551014cafea 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 = "SL L-204 laser gun" + name = "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,43 +7,44 @@ custom_materials = list(/datum/material/iron=2000) ammo_type = list(/obj/item/ammo_casing/energy/lasergun) ammo_x_offset = 1 - shaded_charge = TRUE + shaded_charge = 1 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 L-204 laser gun, this one fires less concentrated energy bolts designed for target practice." + desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) - clumsy_check = TRUE + clumsy_check = 0 item_flags = NONE /obj/item/gun/energy/laser/retro - name ="SL L-104 retro laser gun" + 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" icon_state = "retro" - 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." + 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) 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 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." + 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." force = 10 ammo_x_offset = 3 - selfcharge = TRUE + selfcharge = 1 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 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 + 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 /obj/item/gun/energy/laser/captain/scattershot name = "scatter shot laser rifle" @@ -57,7 +58,6 @@ 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,7 +66,6 @@ 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" @@ -77,7 +76,6 @@ 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 @@ -95,7 +93,6 @@ 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 @@ -138,7 +135,6 @@ 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) @@ -153,13 +149,12 @@ 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 SL E-255 Ultimate" + name = "\improper E-SG 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' @@ -171,7 +166,6 @@ 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() . = ..() @@ -201,43 +195,9 @@ 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 462\".") + . = list("You examine [src] closer. Under the grip is a small inscription: \"NT CN SVALINN 2502\".") 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 b21e176b92e8..029c5f8a2693 100644 --- a/code/modules/projectiles/guns/energy/laser_gatling.dm +++ b/code/modules/projectiles/guns/energy/laser_gatling.dm @@ -22,7 +22,6 @@ . = ..() gun = new(src) battery = new(src) - gun.cell = battery START_PROCESSING(SSobj, src) /obj/item/minigunpack/Destroy() @@ -108,7 +107,7 @@ slot_flags = null w_class = WEIGHT_CLASS_HUGE custom_materials = null - weapon_weight = WEAPON_MEDIUM + weapon_weight = WEAPON_HEAVY 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 @@ -121,7 +120,7 @@ ammo_pack = loc AddElement(/datum/element/update_icon_blocker) - AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.2 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 f5efacbf96c3..a4d252107fc6 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -1,7 +1,6 @@ /obj/item/gun/energy/pulse name = "pulse rifle" - 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' + desc = "A heavy-duty, multifaceted energy rifle with three modes. Preferred by front-line combat personnel." icon_state = "pulse" item_state = null w_class = WEIGHT_CLASS_BULKY @@ -9,17 +8,9 @@ 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/laser) + ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/electrode, /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 //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 + cell_type = "/obj/item/stock_parts/cell/pulse" /obj/item/gun/energy/pulse/emp_act(severity) return @@ -42,24 +33,21 @@ . = ..() /obj/item/gun/energy/pulse/loyalpin - pin = /obj/item/firing_pin + pin = /obj/item/firing_pin/implant/mindshield /obj/item/gun/energy/pulse/carbine name = "pulse carbine" - 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 + desc = "A compact variant of the pulse rifle with less firepower but easier storage." + w_class = WEIGHT_CLASS_NORMAL + slot_flags = ITEM_SLOT_BELT 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 @@ -67,14 +55,11 @@ /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 - ammo_x_offset = 2 - charge_sections = 4 + cell_type = "/obj/item/stock_parts/cell/pulse/pistol" /obj/item/gun/energy/pulse/pistol/loyalpin pin = /obj/item/firing_pin/implant/mindshield @@ -82,7 +67,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) @@ -93,4 +78,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 5a01abfdc0f1..44c667892e4a 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -12,7 +12,6 @@ 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 @@ -104,7 +103,6 @@ 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" @@ -122,7 +120,6 @@ suppressed = null ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) pin = null - manufacturer = MANUFACTURER_NONE /obj/item/gun/energy/plasmacutter @@ -263,7 +260,7 @@ /obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/projectile/beam/wormhole/W, turf/target) var/obj/effect/portal/P = new /obj/effect/portal(target, 300, null, FALSE, null, atmos_link) - RegisterSignal(P, COMSIG_PARENT_QDELETING, PROC_REF(on_portal_destroy)) + RegisterSignal(P, COMSIG_PARENT_QDELETING, .proc/on_portal_destroy) if(istype(W, /obj/projectile/beam/wormhole/orange)) qdel(p_orange) p_orange = P @@ -387,7 +384,7 @@ return return ..() -/obj/item/gun/energy/gravity_gun/can_shoot(visuals) +/obj/item/gun/energy/gravity_gun/can_shoot() if(!firing_core) return FALSE return ..() @@ -404,11 +401,3 @@ /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 fc11a632e039..2caeca6f3a16 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -6,9 +6,6 @@ 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." @@ -16,9 +13,6 @@ 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." @@ -36,19 +30,9 @@ 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 deleted file mode 100644 index db0149a53b04..000000000000 --- a/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm +++ /dev/null @@ -1,83 +0,0 @@ -/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 fad4f485aa88..4822e2b59ba7 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/unique_action(mob/living/user) +/obj/item/gun/energy/beam_rifle/attack_self(mob/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_REF(on_mob_move)) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/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_non_living = null + hitsound_wall = 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 888e680479ea..d2a8c80827fc 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/unique_action(mob/living/user) +/obj/item/gun/blastcannon/attack_self(mob/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 9f2957ba40cd..df30f5a89022 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/unique_action(mob/living/user) +/obj/item/gun/ballistic/bow/attack_self(mob/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_REF(floor_vanish)), 5 SECONDS) + addtimer(CALLBACK(src, .proc/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 b381c8267738..588e697c28c5 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, TYPE_PROC_REF(/obj/item/grenade, prime)), 15) + addtimer(CALLBACK(F, /obj/item/grenade.proc/prime), 15) diff --git a/code/modules/projectiles/guns/misc/medbeam.dm b/code/modules/projectiles/guns/misc/medbeam.dm index dd676a46d068..7061d7769ba4 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_REF(beam_died))//this is a WAY better rangecheck than what was done before (process check) + RegisterSignal(current_beam, COMSIG_PARENT_QDELETING, .proc/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 34af73b855c6..efd99b2d5b49 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/unique_action(mob/living/user) +/obj/item/gun/syringe/attack_self(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 7cc9b1c6ebb4..a50b6eed4ae6 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -13,17 +13,7 @@ generic_canpass = FALSE //The sound this plays on impact. var/hitsound = 'sound/weapons/pierce.ogg' - 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 = "" - - + var/hitsound_wall = "" resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/def_zone = "" //Aiming at @@ -168,7 +158,7 @@ var/can_hit_turfs = FALSE var/static/list/projectile_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/on_entered, ) /obj/projectile/Initialize() @@ -233,6 +223,11 @@ 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 @@ -269,7 +264,8 @@ to_chat(L, "You're shot by \a [src][organ_hit_text]!") else if(hitsound) - playsound(get_turf(L), hitsound, 100, TRUE, -1) + var/volume = vol_by_damage() + playsound(src, hitsound, volume, 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) @@ -354,8 +350,6 @@ 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. @@ -527,16 +521,6 @@ 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 5849c2751728..d17f94af19ae 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -2,21 +2,10 @@ name = "laser" icon_state = "laser" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 25 - armour_penetration = -5 + damage = 20 damage_type = BURN - - 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' - + hitsound = 'sound/weapons/sear.ogg' + hitsound_wall = 'sound/weapons/effects/searwall.ogg' flag = "laser" eyeblur = 2 impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser @@ -25,7 +14,7 @@ light_power = 1 light_color = COLOR_SOFT_RED ricochets_max = 50 //Honk! - ricochet_chance = 90 + ricochet_chance = 80 reflectable = REFLECT_NORMAL /obj/projectile/beam/throw_atom_into_space() @@ -37,15 +26,6 @@ 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" @@ -131,7 +111,7 @@ /obj/projectile/beam/pulse name = "pulse" icon_state = "u_laser" - damage = 40 + damage = 50 impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_BLUE tracer_type = /obj/effect/projectile/tracer/pulse @@ -140,6 +120,11 @@ /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 @@ -165,7 +150,7 @@ /obj/projectile/beam/emitter name = "emitter beam" icon_state = "emitter" - damage = 60 //osha violation waiting to happen + damage = 30 impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser light_color = LIGHT_COLOR_GREEN @@ -262,10 +247,3 @@ 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 43106f97deec..6123789df438 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -6,20 +6,5 @@ damage_type = BRUTE nodamage = FALSE flag = "bullet" - - 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" - - + hitsound_wall = "ricochet" 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 b8cd6f92b10d..ad20c47eeb71 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_non_living = "shatter" + hitsound_wall = "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 0955745ed798..d057213f92e7 100644 --- a/code/modules/projectiles/projectile/bullets/gauss.dm +++ b/code/modules/projectiles/projectile/bullets/gauss.dm @@ -3,7 +3,8 @@ /obj/projectile/bullet/gauss name = "ferromagnetic pellet" icon_state = "gauss-pellet" - damage = 25 + damage = 20 + armour_penetration = 40 range = 35 light_color = COLOR_SOFT_RED light_range = 3 @@ -14,7 +15,6 @@ name = "ferromagnetic lance" icon_state = "redtrac" damage = 30 - armour_penetration = 20 // Ferromagnetic Slug (Model H) @@ -22,5 +22,4 @@ 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 ecd8b5abbbb9..dcf8bb682387 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -19,9 +19,13 @@ // .38 (Colt Detective Special & Winchester) /obj/projectile/bullet/c38 - name = ".38 bullet" + name = ".38 special bullet" damage = 25 - armour_penetration = -20 + armour_penetration = -30 + ricochets_max = 2 + ricochet_chance = 50 + ricochet_auto_aim_angle = 10 + ricochet_auto_aim_range = 3 /obj/projectile/bullet/c38/match name = ".38 match bullet" @@ -122,7 +126,7 @@ /obj/projectile/bullet/a4570 name = ".45-70 bullet" - damage = 45 //crits in 3-4 taps depending on armor + damage = 40 //crits in 3-4 taps depending on armor /obj/projectile/bullet/a4570/match name = ".45-70 match bullet" @@ -148,11 +152,3 @@ ..() 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 f72ecfdfbcd4..a69ef88b4f68 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -65,11 +65,3 @@ 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 0979a268ee16..0f2d43206fc8 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -1,7 +1,6 @@ /obj/projectile/bullet/slug name = "12g shotgun slug" damage = 40 - armour_penetration = -10 speed = 0.5 /obj/projectile/bullet/slug/beanbag @@ -12,8 +11,7 @@ /obj/projectile/bullet/incendiary/shotgun name = "incendiary slug" - damage = 25 - armour_penetration = -10 + damage = 20 speed = 0.5 /obj/projectile/bullet/incendiary/shotgun/dragonsbreath @@ -67,14 +65,12 @@ ///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 = 20 - armour_penetration = -10 + damage = 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 81fed69d516a..79ee634a3e66 100644 --- a/code/modules/projectiles/projectile/energy/misc.dm +++ b/code/modules/projectiles/projectile/energy/misc.dm @@ -17,9 +17,3 @@ 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 0e1dff3d1e72..2a9196ce9ef8 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_REF(pop), teletarget), 30) + addtimer(CALLBACK(src, .proc/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 458c19d053da..00f323d995fa 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_REF(bust_open)), 5 MINUTES) - addtimer(CALLBACK(src, PROC_REF(magicly_lock)), 5) + addtimer(CALLBACK(src, .proc/bust_open), 5 MINUTES) + addtimer(CALLBACK(src, .proc/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, GLOBAL_PROC_REF(qdel), src), 30) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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_REF(decay)), 15 SECONDS) + addtimer(CALLBACK(src, .proc/decay), 15 SECONDS) /obj/structure/closet/decay/proc/unmagify() icon_state = weakened_icon update_appearance() - addtimer(CALLBACK(src, PROC_REF(decay)), 15 SECONDS) + addtimer(CALLBACK(src, .proc/decay), 15 SECONDS) icon_welded = "welded" /obj/projectile/magic/flying @@ -718,7 +718,7 @@ return BULLET_ACT_BLOCK var/turf/T = get_turf(target) for(var/i=0, i<50, i+=10) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 c146932df085..74fa2b2ad17a 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_REF(cleanup_blood)), 5) + addtimer(CALLBACK(src, .proc/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 = "bullet_impact" + hal_hitsound_wall = "ricochet" 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, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), 20), 5) + addtimer(CALLBACK(hal_target, /mob/living/carbon.proc/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 0680c62279fd..d86f90b9368e 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, 2, 1, 0, flame_range = 4) + explosion(target, -1, 1, 3, 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, 1, 1, 1, 2) + explosion(target, 0, 1, 1, 2) return BULLET_ACT_HIT //if(istype(target, /turf/closed) || ismecha(target)) new /obj/item/broken_missile(get_turf(src), 1) diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 1fefd1d55031..eb01cf28b714 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_REF(reset_replicator_cooldown)), 50) + addtimer(CALLBACK(src, .proc/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_REF(reset_replicator_cooldown)), 200) + addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 200) . = TRUE diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 5e5bd21747dc..b638c82fef78 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_REF(stop_shaking), old_pixel_x), duration) + addtimer(CALLBACK(src, .proc/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_REF(stop_operating)), time / speed) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/obj/machinery/reagentgrinder, mix_complete)), 50) + addtimer(CALLBACK(src, /obj/machinery/reagentgrinder/proc/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 a35a8c91542a..bf22e6967862 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -101,7 +101,6 @@ 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 123afbcf387c..4de55c4264af 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, SMOKE, VAPOR, PATCH)) + if(method in list(TOUCH, VAPOR, PATCH)) M.adjust_fire_stacks(reac_volume / 15) if(iscarbon(M)) @@ -1939,8 +1939,7 @@ 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) - // 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/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]" @@ -2434,7 +2433,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 || method == SMOKE) + if(method == INGEST || method == TOUCH) 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") @@ -2456,46 +2455,88 @@ 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/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" +/datum/reagent/consumable/ethanol/ash_wine + name = "Ashwine" + description = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels." + color = "#293D25" boozepwr = 80 quality = DRINK_VERYGOOD - taste_description = "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 + 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/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/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/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]") +/datum/reagent/consumable/ethanol/ice_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) + if(method == TOUCH) + if(!iscarbon(M)) + reac_volume = reac_volume * 2 + M.adjust_bodytemperature((-20*reac_volume) * TEMPERATURE_DAMAGE_COEFFICIENT) + M.Paralyze(reac_volume) + walk(M, 0) //stops them mid pathing even if they're stunimmunee + M.apply_status_effect(/datum/status_effect/ice_block_talisman, (0.1 * reac_volume) SECONDS) + +/datum/reagent/consumable/ethanol/shock_wine + name = "Shock Wine" + description = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown" + color = "#00008b" + taste_description = "the adrenaline of the chase" + glass_name = "Shock Wine" + glass_desc = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown" + breakaway_flask_icon_state = "baflaskshockwine" + +/datum/reagent/consumable/ethanol/shock_wine/on_mob_metabolize(mob/living/M) + ..() + M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) + +/datum/reagent/consumable/ethanol/shock_wine/on_mob_end_metabolize(mob/living/M) + M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) + ..() + +/datum/reagent/consumable/ethanol/shock_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) + if(method == TOUCH) + //simple mobs are so tanky and i want this to be useful on them + if(iscarbon(M)) + reac_volume = reac_volume / 4 + M.electrocute_act(reac_volume, src, siemens_coeff = 1, flags = SHOCK_NOSTUN|SHOCK_TESLA) + do_sparks(5, FALSE, M) + playsound(M, 'sound/machines/defib_zap.ogg', 100, TRUE) diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index f781313bf582..4fc71a1eba0d 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -425,7 +425,7 @@ WS End*/ var/mob/living/carbon/carbies = M if (carbies.stat == DEAD) show_message = 0 - if(method in list(PATCH, TOUCH, SMOKE)) + if(method in list(PATCH, TOUCH)) 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 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 a golem 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 e4e6bdd1d620..984378477292 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, method = SMOKE, reac_volume, show_message = 1, touch_protection = 0) +/datum/reagent/consumable/cooking_oil/expose_mob(mob/living/M, method = TOUCH, 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 && method != SMOKE) //Directly coats the mob, and doesn't go into their bloodstream + if(method != VAPOR && method != TOUCH) //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 || method == SMOKE) + if(method == TOUCH) 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, TYPE_PROC_REF(/mob/living, unfry_mob)), 3) + addtimer(CALLBACK(M, /mob/living/proc/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 == SMOKE || method == VAPOR) + if(method == TOUCH || 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, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) + addtimer(CALLBACK(victim, /mob.proc/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, SMOKE))) + if(iscarbon(M) && (method in list(TOUCH, VAPOR, PATCH))) 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_REF(on_living_holder_deletion)) + RegisterSignal(living_holder, COMSIG_PARENT_QDELETING, .proc/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 == SMOKE || method == VAPOR) + if(method == TOUCH || 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 24be546cb3f6..98d72d1fd5c6 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, SMOKE)) + if(method in list(PATCH, TOUCH)) 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, 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) + 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) ..() /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 == SMOKE || method == VAPOR) + if(method == TOUCH || 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 05d91f17fe47..753d0f1408a6 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 == SMOKE) || method == VAPOR) && (D.spread_flags & DISEASE_SPREAD_CONTACT_FLUIDS)) + if((method == TOUCH || 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 || method == SMOKE) + if(method == TOUCH) 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 || method == SMOKE) + if(method == TOUCH) 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 == SMOKE) || method == VAPOR) + if(method == TOUCH || method == VAPOR) M.reagents.add_reagent(type,reac_volume/4) return return ..() @@ -637,6 +637,14 @@ 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." @@ -742,7 +750,7 @@ taste_description = "slime" /datum/reagent/aslimetoxin/expose_mob(mob/living/L, method=TOUCH, reac_volume) - if(method != TOUCH && method != SMOKE) + if(method != TOUCH) L.ForceContractDisease(new /datum/disease/transformation/slime(), FALSE, TRUE) /datum/reagent/gluttonytoxin @@ -990,7 +998,7 @@ taste_description = "bitterness" /datum/reagent/space_cleaner/sterilizine/expose_mob(mob/living/carbon/C, method=TOUCH, reac_volume) - if(method in list(TOUCH, VAPOR, PATCH, SMOKE)) + if(method in list(TOUCH, VAPOR, PATCH)) for(var/s in C.surgeries) var/datum/surgery/S = s S.speed_modifier = max(0.2, S.speed_modifier) @@ -1111,7 +1119,7 @@ //WS End /datum/reagent/bluespace/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if((method == TOUCH || method == SMOKE) || method == VAPOR) + if(method == TOUCH || method == VAPOR) do_teleport(M, get_turf(M), (reac_volume / 5), asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) //4 tiles per crystal ..() @@ -1120,7 +1128,7 @@ to_chat(M, "You feel unstable...") M.Jitter(2) current_cycle = 1 - addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, bluespace_shuffle)), 30) + addtimer(CALLBACK(M, /mob/living/proc/bluespace_shuffle), 30) ..() /mob/living/proc/bluespace_shuffle() @@ -1171,7 +1179,7 @@ accelerant_quality = 10 /datum/reagent/fuel/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite! - if((method == TOUCH || method == SMOKE) || method == VAPOR) + if(method == TOUCH || method == VAPOR) M.adjust_fire_stacks(reac_volume / 10) return ..() @@ -1204,7 +1212,7 @@ M.adjustToxLoss(rand(5,10)) /datum/reagent/space_cleaner/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if((method == TOUCH || method == SMOKE) || method == VAPOR) + if(method == TOUCH || method == VAPOR) M.wash(clean_types) /datum/reagent/space_cleaner/ez_clean @@ -1221,7 +1229,7 @@ /datum/reagent/space_cleaner/ez_clean/expose_mob(mob/living/M, method=TOUCH, reac_volume) ..() - if(((method == TOUCH || method == SMOKE) || method == VAPOR) && !issilicon(M)) + if((method == TOUCH || method == VAPOR) && !issilicon(M)) M.adjustBruteLoss(1.5) M.adjustFireLoss(1.5) @@ -1862,7 +1870,7 @@ /datum/reagent/acetone_oxide/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people kills people! if(!istype(M)) return - if(method == TOUCH || method == SMOKE) + if(method == TOUCH) M.adjustFireLoss(2, FALSE) // burns, M.adjust_fire_stacks((reac_volume / 10)) ..() @@ -1911,7 +1919,7 @@ var/can_colour_mobs = TRUE /datum/reagent/colorful_reagent/New() - SSticker.OnRoundstart(CALLBACK(src, PROC_REF(UpdateColor))) + SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateColor)) /datum/reagent/colorful_reagent/proc/UpdateColor() color = pick(random_color_list) @@ -1936,13 +1944,13 @@ taste_description = "sourness" /datum/reagent/hair_dye/New() - SSticker.OnRoundstart(CALLBACK(src, PROC_REF(UpdateColor))) + SSticker.OnRoundstart(CALLBACK(src,.proc/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 == SMOKE) || method == VAPOR) + if(method == TOUCH || method == VAPOR) if(M && ishuman(M)) var/mob/living/carbon/human/H = M H.hair_color = pick(potential_colors) @@ -1957,7 +1965,7 @@ taste_description = "sourness" /datum/reagent/barbers_aid/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if((method == TOUCH || method == SMOKE) || method == VAPOR) + if(method == TOUCH || 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) @@ -1975,7 +1983,7 @@ taste_description = "sourness" /datum/reagent/concentrated_barbers_aid/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if((method == TOUCH || method == SMOKE) || method == VAPOR) + if(method == TOUCH || 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!") @@ -1991,7 +1999,7 @@ taste_description = "bitterness" /datum/reagent/baldium/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if((method == TOUCH || method == SMOKE) || method == VAPOR) + if(method == TOUCH || method == VAPOR) if(M && ishuman(M)) var/mob/living/carbon/human/H = M to_chat(H, "Your hair is falling out in clumps!") @@ -2406,7 +2414,7 @@ /datum/reagent/gravitum/expose_obj(obj/O, volume) O.AddElement(/datum/element/forced_gravity, 0) - addtimer(CALLBACK(O, PROC_REF(_RemoveElement), list(/datum/element/forced_gravity, 0)), volume * time_multiplier) + addtimer(CALLBACK(O, .proc/_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 @@ -2557,14 +2565,14 @@ ) /datum/reagent/three_eye/on_mob_metabolize(mob/living/L) . = ..() - //addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, add_client_colour), /datum/client_colour/thirdeye), 1.5 SECONDS) + //addtimer(CALLBACK(L, /mob.proc/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, 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) + 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) return /datum/reagent/three_eye/on_mob_life(mob/living/carbon/M) @@ -2592,7 +2600,7 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living, seizure)), rand(1 SECONDS, 5 SECONDS)) + addtimer(CALLBACK(H, /mob/living.proc/seizure), rand(1 SECONDS, 5 SECONDS)) /datum/reagent/three_eye/overdose_process(mob/living/M) . = ..() @@ -2612,9 +2620,9 @@ to_chat(L, "Your mind reels and the world begins to fade away...") if(iscarbon(L)) var/mob/living/carbon/C = L - addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, adjustOrganLoss), ORGAN_SLOT_BRAIN, 200), 5 SECONDS) //Deathblow to the brain + addtimer(CALLBACK(C, /mob/living/carbon.proc/adjustOrganLoss, ORGAN_SLOT_BRAIN, 200), 5 SECONDS) //Deathblow to the brain else - addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, gib)), 5 SECONDS) + addtimer(CALLBACK(L, /mob/living.proc/gib), 5 SECONDS) /datum/reagent/cement name = "Cement" @@ -2778,9 +2786,3 @@ 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 62c743558e13..0445138a4e20 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, SMOKE)) + if(method in list(VAPOR, TOUCH)) 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 d95bd68759c7..9cde25afcac0 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 == SMOKE) || method == VAPOR) + if(method == TOUCH || method == VAPOR) M.adjust_fire_stacks(reac_volume / 5) return ..() @@ -179,6 +179,11 @@ 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." @@ -569,7 +574,7 @@ toxpwr = 0 /datum/reagent/toxin/itching_powder/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if((method == TOUCH || method == SMOKE) || method == VAPOR) + if(method == TOUCH || 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 deleted file mode 100644 index df76f85b1f64..000000000000 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ /dev/null @@ -1,211 +0,0 @@ -/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 4aa0bbc2fe94..57df3331c799 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_REF(_step_away), X, T), 2) + addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_away, X, T), 2) else if(step_towards(X, T) && moving_power > 1) - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(_step_towards), X, T), 2) + addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_towards, X, T), 2) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index f6f46d3c3970..82be8a075cc1 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_REF(UpdateInfo))) //method used by secret sauce. + SSticker.OnRoundstart(CALLBACK(src,.proc/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_REF(UpdateInfo))) + SSticker.OnRoundstart(CALLBACK(src,.proc/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_REF(divine_explosion), round(created_volume/48,1),get_turf(holder.my_atom)), 2 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(explode), holder, created_volume), rand(5,10) SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(zappy_zappy), holder, T1), added_delay) + addtimer(CALLBACK(src, .proc/zappy_zappy, holder, T1), added_delay) added_delay += 1.5 SECONDS if(created_volume >= 40) - addtimer(CALLBACK(src, PROC_REF(zappy_zappy), holder, T2), added_delay) + addtimer(CALLBACK(src, .proc/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_REF(zappy_zappy), holder, T3), added_delay) - addtimer(CALLBACK(src, PROC_REF(explode), holder, created_volume), added_delay) + addtimer(CALLBACK(src, .proc/zappy_zappy, holder, T3), added_delay) + addtimer(CALLBACK(src, .proc/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 07753cea4a15..bf2f58b146ad 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_REF(delete_extract), holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, .proc/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_REF(chemical_mob_spawn), holder, 5, "Gold Slime", HOSTILE_SPAWN), 50) + addtimer(CALLBACK(src, .proc/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_REF(chemical_mob_spawn), holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral"), 50) + addtimer(CALLBACK(src, .proc/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_REF(chemical_mob_spawn), holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral"), 50) + addtimer(CALLBACK(src, .proc/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_REF(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/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_REF(freeze), holder), 50) + addtimer(CALLBACK(src, .proc/freeze, holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, .proc/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_REF(slime_burn), holder), 50) + addtimer(CALLBACK(src, .proc/slime_burn, holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, .proc/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_REF(boom), holder), 50) + addtimer(CALLBACK(src, .proc/boom, holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, .proc/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_REF(slime_stop), holder), 5 SECONDS) + addtimer(CALLBACK(src, .proc/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, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) + addtimer(CALLBACK(S, /obj/item/grenade.proc/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, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) + addtimer(CALLBACK(S, /obj/item/grenade.proc/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 e95dc19c56b2..f0aeaf8504cd 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_REF(UpdateInfo))) + SSticker.OnRoundstart(CALLBACK(src,.proc/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 55fdd7ec0e0c..dca353500b42 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -138,8 +138,6 @@ 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) @@ -270,7 +268,7 @@ return var/fill_name = fill_icon_state? fill_icon_state : icon_state - var/mutable_appearance/filling = mutable_appearance(fill_icon, "[fill_name][fill_icon_thresholds[1]]") + var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[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/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index e5f5f22db67a..332decf03e38 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, TYPE_PROC_REF(/datum/reagents, trans_to), M, 5, TRUE, TRUE, FALSE, user, FALSE, INGEST), 5) + addtimer(CALLBACK(reagents, /datum/reagents.proc/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 3c1443bfb9d2..6fc3cd85e0d9 100644 --- a/code/modules/reagents/reagent_containers/mortar.dm +++ b/code/modules/reagents/reagent_containers/mortar.dm @@ -3,9 +3,6 @@ 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." @@ -36,83 +33,41 @@ to accommodate additional materials. grinded = null to_chat(user, "You eject the item inside.") -/obj/item/reagent_containers/glass/mortar/attackby(obj/item/attacking_item, mob/living/carbon/human/user) +/obj/item/reagent_containers/glass/mortar/attackby(obj/item/I, mob/living/carbon/human/user) ..() - if(istype(attacking_item, /obj/item/pestle)) - if(!grinded) - balloon_alert(user, "nothing to grind") - return - - if(user.getStaminaLoss() > MORTAR_STAMINA_MINIMUM) - balloon_alert(user, "too tired") + 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 return - - 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) + else + to_chat(user, "There is nothing to grind!") 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(!attacking_item.juice_results && !attacking_item.grind_results) - balloon_alert(user, "can't grind this") - return ..() - if(grinded) - balloon_alert(user, "already full") + to_chat(user, "There is something inside already!") return - - 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 + if(I.juice_results || I.grind_results) + I.forceMove(src) + grinded = I + return + to_chat(user, "You can't grind this!") /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 187935fa0b25..50436b8ee9e6 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_REF(to_chat), M, "[pick(strings(REDPILL_FILE, "redpill_questions"))]"), 50) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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 f0901e416b25..021d37cd61b0 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, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + if(!do_mob(user, target, extra_checks=CALLBACK(L, /mob/living/proc/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, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + if(!do_mob(user, L, extra_checks=CALLBACK(L, /mob/living/proc/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 b8b08486f20d..c11906bf9c0d 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_REF(convey), affecting), 1) + addtimer(CALLBACK(src, .proc/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 13158e86daad..7ffc4e3b9db1 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_REF(can_be_rotated)), CALLBACK(src, PROC_REF(after_rot))) + 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)) /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 2de8ff057405..aa516b91fab3 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_REF(expel_holder), H, TRUE), 20) + addtimer(CALLBACK(src, .proc/expel_holder, H, TRUE), 20) else - addtimer(CALLBACK(src, PROC_REF(expel_holder), H), 20) + addtimer(CALLBACK(src, .proc/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 1f13dcd3b3b4..16bf2a9241cb 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_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_GOLEM,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_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_GOLEM,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_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_GOLEM,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_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_GOLEM,SPECIES_POD,SPECIES_SKELETON,SPECIES_SNAIL) /datum/design/digitigrade/leftleg name = "Digitigrade Left Leg" @@ -319,6 +319,38 @@ 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" @@ -421,6 +453,8 @@ race = "Abductor" if(SPECIES_FLYPERSON) race = "Flyperson" + if(SPECIES_GOLEM) + race = "Golem" if(SPECIES_POD) race = "Phytosian" if(SPECIES_SKELETON) @@ -463,6 +497,16 @@ 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 0ed2e97f39b9..a38d1a24c7c6 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -583,6 +583,15 @@ 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 2cddc5043c3f..cf4ba7b9fa41 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -120,13 +120,3 @@ 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 ab2933c60bcc..8c2b53b624bc 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_REF(finish_loading)), 10) + addtimer(CALLBACK(src, .proc/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_REF(reset_busy)), 24) + addtimer(CALLBACK(src, .proc/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 f714f65f154d..dd9003a52014 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_REF(boom)), 50) + addtimer(CALLBACK(src, .proc/boom), 50) if(globalMalf == 100) visible_message("[src] begins to glow and vibrate. It's going to blow!") - addtimer(CALLBACK(src, PROC_REF(honk)), 50) + addtimer(CALLBACK(src, .proc/honk), 50) - addtimer(CALLBACK(src, PROC_REF(reset_exp)), resetTime) + addtimer(CALLBACK(src, .proc/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_REF(teleport), PROC_REF(explode), PROC_REF(rapidDupe), PROC_REF(petSpray), PROC_REF(flash), PROC_REF(clean), PROC_REF(corgicannon)) + realProc = pick(.proc/teleport,.proc/explode,.proc/rapidDupe,.proc/petSpray,.proc/flash,.proc/clean,.proc/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_REF(cd)), cooldownMax) + addtimer(CALLBACK(src, .proc/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_REF(throwSmoke), C)) + C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, .proc/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_REF(do_explode), user), rand(35, 100)) + addtimer(CALLBACK(src, .proc/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_REF(do_the_teleport), user), rand(10, 30)) + addtimer(CALLBACK(src, .proc/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 36a22dac2cc7..5a1e9303b013 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_REF(update_research)) + INVOKE_ASYNC(src, .proc/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_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) + 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) 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 d5d5fa79e8ca..30be4869d1bc 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_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) + 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) /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_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) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Pinging nanites...", "[initial(icon_state)]_active"),40) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Initiating graceful self-destruct sequence...", "[initial(icon_state)]_active"),70) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Removing debris...", "[initial(icon_state)]_falling"),110) + addtimer(CALLBACK(src, .proc/complete_removal, locked_state),130) /obj/machinery/nanite_chamber/proc/complete_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 3a41e394b1dc..c18364de1a2d 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_REF(react_to_chamber_del)) + RegisterSignal(chamber, COMSIG_PARENT_QDELETING, .proc/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 11b862e4a751..a33f42f5f848 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_REF(zap)), 50) + addtimer(CALLBACK(src, .proc/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 dacdc0481408..ff42a5fe099c 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_REF(send_code)), ES.get_value() * 10) + addtimer(CALLBACK(src, .proc/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_REF(send_code)), ES.get_value() * 10) + addtimer(CALLBACK(src, .proc/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_REF(on_hear)) + RegisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/on_hear) /datum/nanite_program/sensor/voice/on_mob_remove() - UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR, PROC_REF(on_hear)) + UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/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 76bddd35c066..848c5b2e4610 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, TYPE_PROC_REF(/mob/living, Sleeping), 200), rand(60,200)) + addtimer(CALLBACK(host_mob, /mob/living.proc/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 5f166d4d610a..16f87bc6bdee 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_REF(boom)), clamp((nanites.nanite_volume * 0.35), 25, 150)) + addtimer(CALLBACK(src, .proc/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_REF(end_brainwashing)), 600) + addtimer(CALLBACK(src, .proc/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 9e39486c2052..f53707206a38 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_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) + 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) /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_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) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),40) + addtimer(CALLBACK(src, .proc/complete_cloud_change, locked_state, attacker),60) /obj/machinery/public_nanite_chamber/proc/complete_cloud_change(locked_state, mob/living/attacker) locked = locked_state @@ -157,7 +157,7 @@ . = TRUE - 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 + addtimer(CALLBACK(src, .proc/try_inject_nanites, attacker), 30) //If someone is shoved in give them a chance to get out before the injection starts /obj/machinery/public_nanite_chamber/proc/try_inject_nanites(mob/living/attacker) if(occupant) diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 7551590a7a69..90094f64594f 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -55,7 +55,6 @@ 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)) @@ -112,4 +111,4 @@ stack_name = S.name use_power(min(1000, (amount_inserted / 100))) add_overlay("protolathe_[stack_name]") - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "protolathe_[stack_name]"), 10) + addtimer(CALLBACK(src, /atom/proc/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 79009ed1fdf6..02f51a1af9db 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, even Skeletons... We finally understand the less well known species enough to replicate their anatomy." + description = "Phytosians, Golems, 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_pod", "limbdesign_skeleton", "limbdesign_snail") + design_ids = list("limbdesign_abductor", "limbdesign_fly", "limbdesign_golem", "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") + design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive", "fat_sucker") 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", "weatherradio")//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")//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/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 651eb2fece14..4626e4154cc8 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_REF(resistField)) + RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/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_REF(breakCube)) + RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/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 e9fd98232e2c..60a54c461bf1 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_REF(boom)), 50) + addtimer(CALLBACK(src, .proc/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 501ff548e08f..a2853592e4d2 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_REF(startTimer)), 50) + addtimer(CALLBACK(src, .proc/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_REF(boom)), 50) + addtimer(CALLBACK(src, .proc/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,7 +258,12 @@ Charged extracts: /obj/item/slimecross/charged/adamantine colour = "adamantine" - effect_desc = "Does nothing. Sorry :)" + 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) + ..() /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 89fa16cca7f5..e4f19c892a12 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_REF(boom)), 50) + addtimer(CALLBACK(src, .proc/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,7 +290,14 @@ Chilling extracts: /obj/item/slimecross/chilling/black colour = "black" - effect_desc = "Does nothing. :)" + 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) + ..() /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 da9387883f0c..6eead050c385 100644 --- a/code/modules/research/xenobiology/crossbreeding/industrial.dm +++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm @@ -188,6 +188,12 @@ 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/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 81ac7db98b01..d2b1d49f78fe 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_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)) + 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) //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 113f130562de..9a1c98ad6212 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, TYPE_PROC_REF(/datum/species/jelly/luminescent, update_glow), user, LUMINESCENT_DEFAULT_GLOW), 600) + addtimer(CALLBACK(species, /datum/species/jelly/luminescent.proc/update_glow, user, LUMINESCENT_DEFAULT_GLOW), 600) to_chat(user, "You start glowing brighter.") if(SLIME_ACTIVATE_MAJOR) @@ -494,9 +494,17 @@ return to_chat(user, "You feel your skin harden and become more resistant.") species.armor += 25 - addtimer(CALLBACK(src, PROC_REF(reset_armor), species), 1200) + addtimer(CALLBACK(src, .proc/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 dd4d39e91a20..a318f5bb1a48 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_REF(remove_from_cursed)) + RegisterSignal(L.mind, COMSIG_PARENT_QDELETING, .proc/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 11e7e24e6547..d43a72d80c96 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_REF(butcher_target)) + RegisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/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 1115224a6733..bf583bcd2157 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -26,6 +26,86 @@ /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 bbcce202096b..5d6295f54d0c 100644 --- a/code/modules/ruins/lavalandruin_code/syndicate_base.dm +++ b/code/modules/ruins/lavalandruin_code/syndicate_base.dm @@ -1,9 +1,11 @@ +//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, + /obj/item/stack/cable_coil/random = 5, //WS Edit - Random added from Smartwire Revert /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 b231ea902371..31a6ee6f0c0f 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_REF(remake_walker), H.mind, H.real_name), 20 SECONDS) + addtimer(CALLBACK(src, .proc/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 bc0e8a9d401d..7b900dc579d7 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_REF(on_exit) + COMSIG_ATOM_EXIT = .proc/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_REF(on_entered) + COMSIG_ATOM_ENTERED = .proc/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_REF(collapse)) + INVOKE_ASYNC(src, .proc/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_REF(rebuild)), 55) + addtimer(CALLBACK(src, .proc/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 7b5bd27a8ada..e388a577fe1d 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_REF(determine_victor), user), 50) + addtimer(CALLBACK(src, .proc/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_REF(collapse)), 600) + addtimer(CALLBACK(src, .proc/collapse), 600) /obj/structure/cursed_money/proc/collapse() visible_message("[src] falls in on itself, \ @@ -76,6 +76,27 @@ 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 08a21635ea93..3cf3dd376795 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, TYPE_PROC_REF(/atom/movable/screen/text/screen_text, play_to_mob), src) + INVOKE_ASYNC(text_box, /atom/movable/screen/text/screen_text.proc/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_REF(after_play), user), fade_out_delay) + addtimer(CALLBACK(src, .proc/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_REF(end_play), user), fade_out_time) + addtimer(CALLBACK(src, .proc/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 7f3693e98760..be021492b2de 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_REF(triggerEvent))) + ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, .proc/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_REF(eventSent)), 20) + addtimer(CALLBACK(src, .proc/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_REF(eventTriggered)), 20) + addtimer(CALLBACK(src, .proc/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 2d48fc3a82a3..2ca64fcd35fc 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, TYPE_PROC_REF(/obj/machinery/door, close)) + INVOKE_ASYNC(A, /obj/machinery/door/.proc/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 824c1843bac7..4bf6eac0ebed 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_REF(stop_animation)), 8, TIMER_CLIENT_TIME) + addtimer(CALLBACK(src, .proc/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 8bfe1f7e9bd8..b89a07efdac5 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -211,8 +211,6 @@ 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) . = ..() @@ -224,7 +222,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_REF(load_roundstart)) + INVOKE_ASYNC(src, .proc/load_roundstart) #ifdef DOCKING_PORT_HIGHLIGHT highlight("#f00") @@ -598,7 +596,7 @@ all_shuttle_areas += M.shuttle_areas for(var/turf/oldT as anything in old_turfs) - if(!oldT || !(oldT.loc in all_shuttle_areas)) + if(!(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/special.dm b/code/modules/shuttle/special.dm index fd18f0c5a1ee..2ca8e1b62027 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_REF(sleeper_dreams), L), 100) + addtimer(CALLBACK(src, .proc/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_REF(check_barstaff_godmode)) + RegisterSignal(src, COMSIG_ENTER_AREA, .proc/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_REF(check_barstaff_godmode)) + RegisterSignal(src, COMSIG_ENTER_AREA, .proc/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_REF(on_entered) + COMSIG_ATOM_ENTERED = .proc/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 9e30c708774d..66c0c232c06c 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_REF(on_lockon_component))) + lockon_component = M.AddComponent(/datum/component/lockon_aiming, 5, typecacheof(list(/mob/living)), 1, null, CALLBACK(src, .proc/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 73014c5b3f47..f8d5af4e2824 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_REF(start_recharge)) + INVOKE_ASYNC(src, .proc/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 61c05c4170fe..02e3532175a7 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_REF(cure_blindness), target), 40) + addtimer(CALLBACK(src, .proc/cure_blindness, target), 40) target.adjust_bodytemperature(-200) /** @@ -291,6 +291,11 @@ 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 6631d943a3aa..eaa8eae9731b 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_REF(fakefireextinguish)), 15, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 8b948802a7ac..11dc1ca1a690 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_REF(do_jaunt), target) + INVOKE_ASYNC(src, .proc/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 e4da9b63aa6d..62bd538120e1 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), null, user) + new wall_type(get_turf(user),user) if(user.dir == SOUTH || user.dir == NORTH) - new wall_type(get_step(user, EAST), null, user) - new wall_type(get_step(user, WEST), null, user) + new wall_type(get_step(user, EAST),user) + new wall_type(get_step(user, WEST),user) else - new wall_type(get_step(user, NORTH), null, user) - new wall_type(get_step(user, SOUTH), null, user) + new wall_type(get_step(user, NORTH),user) + new wall_type(get_step(user, SOUTH),user) /obj/effect/forcefield/wizard var/mob/wizard -/obj/effect/forcefield/wizard/Initialize(mapload, new_timeleft, mob/summoner) +/obj/effect/forcefield/wizard/Initialize(mapload, mob/summoner) . = ..() wizard = summoner diff --git a/code/modules/spells/spell_types/genetic.dm b/code/modules/spells/spell_types/genetic.dm index fea675fdc17d..9397484aeb6b 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_REF(remove), target), duration, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 6fe24f5d3874..28430fd86220 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_REF(open_door), door) + INVOKE_ASYNC(src, .proc/open_door, door) for(var/obj/structure/closet/C in T.contents) - INVOKE_ASYNC(src, PROC_REF(open_closet), C) + INVOKE_ASYNC(src, .proc/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 c8d1c4a7c027..db92e6530000 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_REF(rise)), respawn_time, TIMER_UNIQUE) + addtimer(CALLBACK(src, .proc/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 0e56c1112488..1f6302b89637 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, TYPE_PROC_REF(/obj/item/storage/box/mime, emptyStorage), FALSE), (summon_lifespan - 1)) + addtimer(CALLBACK(B, /obj/item/storage/box/mime/.proc/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 a45f2afdaad5..def36f4c8b12 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_REF(clean_turfs)), duration) + addtimer(CALLBACK(src, .proc/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_REF(on_entered), + COMSIG_ATOM_ENTERED = .proc/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 366fb41790ab..92b51e0f2049 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_REF(on_paralysis_trait_gain)) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS), PROC_REF(on_paralysis_trait_loss)) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS), .proc/on_paralysis_trait_gain) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS), .proc/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, TYPE_PROC_REF(/mob, emote), "scream") + INVOKE_ASYNC(owner, /mob.proc/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_REF(on_owner_easylimbwound_trait_loss)) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_EASYLIMBDISABLE), PROC_REF(on_owner_easylimbwound_trait_gain)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_EASYLIMBDISABLE), .proc/on_owner_easylimbwound_trait_loss) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_EASYLIMBDISABLE), .proc/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_REF(on_owner_nolimbdisable_trait_loss)) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_NOLIMBDISABLE), PROC_REF(on_owner_nolimbdisable_trait_gain)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_NOLIMBDISABLE), .proc/on_owner_nolimbdisable_trait_loss) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_NOLIMBDISABLE), .proc/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_REF(on_paralysis_trait_gain)) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS), PROC_REF(on_paralysis_trait_loss)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS), .proc/on_paralysis_trait_gain) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS), .proc/on_paralysis_trait_loss) if(HAS_TRAIT(owner, TRAIT_EASYLIMBDISABLE)) disable_threshold = 0.6 - 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)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_EASYLIMBDISABLE), .proc/on_owner_easylimbwound_trait_loss) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_EASYLIMBDISABLE), .proc/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_REF(on_mob_move)) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/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, 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) + 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) /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 7c292ac21fc4..b063d01f8048 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, TYPE_PROC_REF(/mob, emote), "scream") + INVOKE_ASYNC(C, /mob.proc/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 57d20bc3952a..8a101112377f 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_REF(on_owner_paralysis_loss)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_ARM), .proc/on_owner_paralysis_loss) else REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_ARM) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM), PROC_REF(on_owner_paralysis_gain)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM), .proc/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_REF(on_owner_paralysis_loss)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_ARM), .proc/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_REF(on_owner_paralysis_gain)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM), .proc/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_REF(on_owner_paralysis_loss)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_ARM), .proc/on_owner_paralysis_loss) else REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_ARM) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM), PROC_REF(on_owner_paralysis_gain)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM), .proc/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_REF(on_owner_paralysis_loss)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_ARM), .proc/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_REF(on_owner_paralysis_gain)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM), .proc/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_REF(on_owner_paralysis_loss)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_LEG), .proc/on_owner_paralysis_loss) else REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_LEG) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG), PROC_REF(on_owner_paralysis_gain)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG), .proc/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_REF(on_owner_paralysis_loss)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_LEG), .proc/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_REF(on_owner_paralysis_gain)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG), .proc/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_REF(on_owner_paralysis_loss)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_LEG), .proc/on_owner_paralysis_loss) else REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_LEG) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG), PROC_REF(on_owner_paralysis_gain)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG), .proc/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_REF(on_owner_paralysis_loss)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_LEG), .proc/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_REF(on_owner_paralysis_gain)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG), .proc/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 045c052a7c41..ad71810adcd3 100644 --- a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm @@ -216,3 +216,288 @@ /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 367c07a54970..163b94385dea 100644 --- a/code/modules/surgery/bodyparts/species_parts/rachnid_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/rachnid_bodyparts.dm @@ -1,34 +1,31 @@ /obj/item/bodypart/head/rachnid - static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' + 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 - static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' + 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 - static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' + icon = 'icons/mob/species/rachnid/bodyparts.dmi' limb_id = SPECIES_RACHNID should_draw_greyscale = FALSE /obj/item/bodypart/r_arm/rachnid - static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' + icon = 'icons/mob/species/rachnid/bodyparts.dmi' limb_id = SPECIES_RACHNID should_draw_greyscale = FALSE /obj/item/bodypart/leg/left/rachnid - static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' + 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 - static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' + 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 48f423a12512..7cf752ddf998 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(iszombie(H) || isshadow(H) || isandroid(H)) + else if(isgolem(H) || 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 new file mode 100644 index 000000000000..be7d824e0b1f --- /dev/null +++ b/code/modules/surgery/lipoplasty.dm @@ -0,0 +1,69 @@ +/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 dc95ab97cece..f8314a7c6dfa 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_REF(synth_cool)), 50) + addtimer(CALLBACK(src, .proc/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_REF(heal)), 3 SECONDS) + addtimer(CALLBACK(src, .proc/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_REF(undo_heart_attack)), 600 / severity) + addtimer(CALLBACK(src, .proc/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_REF(move_react)) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/move_react) owner.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) - RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react)) + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/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 ae6f1cf43d39..a7a383927b0e 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_REF(on_signal)) + RegisterSignal(owner, signalCache, .proc/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_REF(clear_stuns)), stun_cap_amount, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/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_REF(reboot)), 90 / severity) + addtimer(CALLBACK(src, .proc/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 f1eb39b84162..4f22083377ae 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -186,6 +186,12 @@ 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 de0ebac6eddb..0bd9ed46d1a9 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_REF(update_visuals)) + RegisterSignal(M, COMSIG_ATOM_DIR_CHANGE, .proc/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 26b93d2c4642..cafcc0196b1b 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_REF(stop_if_unowned)), 120) + addtimer(CALLBACK(src, .proc/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_REF(stop_if_unowned)), 80) + addtimer(CALLBACK(src, .proc/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 4b5dd9a49717..51d857aaeff6 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_REF(OnEatFrom))) + AddComponent(/datum/component/edible, food_reagents, null, RAW | MEAT | GORE, null, 10, null, null, null, CALLBACK(src, .proc/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 2e2403db14c6..10cc049eb806 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_REF(charge)) - RegisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(on_electrocute)) + RegisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, .proc/charge) + RegisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/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 4469410f9b58..77fae8c0bb87 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -21,6 +21,7 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, + /datum/language/terrum, /datum/language/ratvar )) @@ -33,17 +34,26 @@ /obj/item/organ/tongue/Insert(mob/living/carbon/M, special = 0) ..() if (modifies_speech) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(M, COMSIG_MOB_SAY, .proc/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_REF(handle_speech)) - M.RegisterSignal(M, COMSIG_MOB_SAY, TYPE_PROC_REF(/mob/living/carbon, handle_tongueless_speech)) + UnregisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + M.RegisterSignal(M, COMSIG_MOB_SAY, /mob/living/carbon/.proc/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" @@ -98,6 +108,7 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, + /datum/language/terrum, /datum/language/buzzwords, /datum/language/ratvar )) @@ -234,6 +245,7 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, + /datum/language/terrum, /datum/language/calcic, /datum/language/ratvar )) @@ -316,6 +328,7 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, + /datum/language/terrum, /datum/language/ratvar, )) @@ -340,6 +353,7 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, + /datum/language/terrum, /datum/language/ratvar, /datum/language/slime )) @@ -364,6 +378,7 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, + /datum/language/terrum, /datum/language/buzzwords )) @@ -405,6 +420,7 @@ /datum/language/moffic, /datum/language/sylvan, /datum/language/shadowtongue, + /datum/language/terrum, /datum/language/teceti_unified )) @@ -428,6 +444,7 @@ /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 63b6d5c0bfa0..7fdf9532de17 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -22,6 +22,38 @@ /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" @@ -336,7 +368,7 @@ text = devilinfo.truename else text = L.real_name - addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), text), 5 * i) + addtimer(CALLBACK(L, /atom/movable/proc/say, text), 5 * i) i++ //SAY MY NAME @@ -344,7 +376,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), user.name), 5 * i) + addtimer(CALLBACK(L, /atom/movable/proc/say, user.name), 5 * i) i++ //KNOCK KNOCK @@ -352,7 +384,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), "Who's there?"), 5 * i) + addtimer(CALLBACK(L, /atom/movable/proc/say, "Who's there?"), 5 * i) i++ //STATE LAWS @@ -376,7 +408,7 @@ for(var/iter in 1 to 5 * power_multiplier) for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(_step), L, direction? direction : pick(GLOB.cardinals)), 10 * (iter - 1)) + addtimer(CALLBACK(GLOBAL_PROC, .proc/_step, L, direction? direction : pick(GLOB.cardinals)), 10 * (iter - 1)) //WALK else if((findtext(message, walk_words))) @@ -399,7 +431,7 @@ cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HELP), i * 2) - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) + addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) i++ //DISARM INTENT @@ -407,7 +439,7 @@ cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_DISARM), i * 2) - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) + addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) i++ //GRAB INTENT @@ -415,7 +447,7 @@ cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_GRAB), i * 2) - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) + addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) i++ //HARM INTENT @@ -423,7 +455,7 @@ cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HARM), i * 2) - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) + addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) i++ //THROW/CATCH @@ -444,7 +476,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")), 5 * i) + addtimer(CALLBACK(L, /atom/movable/proc/say, pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")), 5 * i) i++ //GET UP @@ -477,7 +509,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "dance"), 5 * i) + addtimer(CALLBACK(L, /mob/living/.proc/emote, "dance"), 5 * i) i++ //JUMP @@ -486,8 +518,8 @@ for(var/V in listeners) var/mob/living/L = V if(prob(25)) - 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) + addtimer(CALLBACK(L, /atom/movable/proc/say, "HOW HIGH?!!"), 5 * i) + addtimer(CALLBACK(L, /mob/living/.proc/emote, "jump"), 5 * i) i++ //SALUTE @@ -495,7 +527,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "salute"), 5 * i) + addtimer(CALLBACK(L, /mob/living/.proc/emote, "salute"), 5 * i) i++ //PLAY DEAD @@ -503,7 +535,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "deathgasp"), 5 * i) + addtimer(CALLBACK(L, /mob/living/.proc/emote, "deathgasp"), 5 * i) i++ //PLEASE CLAP @@ -511,13 +543,13 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "clap"), 5 * i) + addtimer(CALLBACK(L, /mob/living/.proc/emote, "clap"), 5 * i) i++ //HONK else if((findtext(message, honk_words))) cooldown = COOLDOWN_MEME - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25) + addtimer(CALLBACK(GLOBAL_PROC, .proc/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/datum.dm b/code/modules/tgs/core/datum.dm index 07ce3b684584..de420a2a325a 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -12,13 +12,8 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) src.version = version /datum/tgs_api/proc/TerminateWorld() - while(TRUE) - TGS_DEBUG_LOG("About to terminate world. Tick: [world.time], sleep_offline: [world.sleep_offline]") - world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 - del(world) - world.sleep_offline = FALSE // just in case, this is BYOND after all... - sleep(1) - TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") + del(world) + sleep(1) // https://www.byond.com/forum/post/2894866 /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 83420d130a74..1b52b31d6a73 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.7.0" +"5.6.2" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index 48969c0c7d56..bdcd4e4dd58e 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -80,7 +80,6 @@ #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" @@ -90,7 +89,6 @@ #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/topic.dm b/code/modules/tgs/v5/topic.dm index 2ef0c70a97fa..d7d471213813 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) @@ -267,16 +267,4 @@ 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 fd1ed7e4cf54..f163adaaafe3 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -78,9 +78,6 @@ #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 @@ -90,7 +87,6 @@ #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 a79966f69ba1..91ab11ab4677 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_REF(on_act_message), act_type, payload, state)) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, .proc/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 fdd74389c837..8327fb838eb7 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_REF(on_message)) + window.subscribe(src, .proc/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_REF(on_initialize_timed_out)), 5 SECONDS) + addtimer(CALLBACK(src, .proc/on_initialize_timed_out), 5 SECONDS) /** * private diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index f0cb3562bdf2..31e570cd9431 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_REF(do_hide)), 1) + addtimer(CALLBACK(src, .proc/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 d4bfa21201be..cc12fe0c638f 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -62,8 +62,6 @@ #define TEST_OUTPUT_GREEN(text) (text) #endif -#ifdef BASIC_TESTS - #include "anchored_mobs.dm" #include "autowiki.dm" #include "bespoke_id.dm" @@ -71,6 +69,7 @@ #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" @@ -79,6 +78,7 @@ #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,8 +90,10 @@ #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" @@ -101,31 +103,12 @@ #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 0ad01c2cb9f8..30bad7217514 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_REF(pre_attack_hit)) - RegisterSignal(toolbox, COMSIG_ITEM_ATTACK, PROC_REF(attack_hit)) - RegisterSignal(toolbox, COMSIG_ITEM_AFTERATTACK, PROC_REF(post_attack_hit)) + 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) attacker.put_in_active_hand(toolbox, forced = TRUE) attacker.a_intent_change(INTENT_HARM) diff --git a/code/modules/unit_tests/connect_loc.dm b/code/modules/unit_tests/connect_loc.dm index e169cab1be5d..511e1745a73a 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_REF(on_receive_mock_signal), + COMSIG_MOCK_SIGNAL = .proc/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 7111107b709b..5795ab34374f 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_REF(on_emote_used)) + RegisterSignal(human, COMSIG_MOB_EMOTE, .proc/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 e93d20910af0..4950be10c1a6 100644 --- a/code/modules/unit_tests/projectiles.dm +++ b/code/modules/unit_tests/projectiles.dm @@ -19,7 +19,6 @@ 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 73dc32a088fa..e1e27097ee6f 100644 --- a/code/modules/unit_tests/ship_outpost_placement.dm +++ b/code/modules/unit_tests/ship_outpost_placement.dm @@ -1,8 +1,6 @@ /datum/unit_test/ship_outpost_placement/Run() - // 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] + for(var/mapname as anything in SSmapping.ship_purchase_list) + var/datum/map_template/shuttle/map = SSmapping.ship_purchase_list[mapname] try // they'll spawn in empty space, and won't be docked new /datum/overmap/ship/controlled(list("x" = 1, "y" = 1), map) @@ -13,11 +11,6 @@ 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 6b53fa9a02c3..4fde603ee8c7 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, TYPE_PROC_REF(/obj/vehicle/sealed/car, is_car_stationary), old_loc))) + if(do_mob(forcer, M, get_enter_delay(M), extra_checks=CALLBACK(src, /obj/vehicle/sealed/car/proc/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 e9addbd2d5bf..80511d5ea153 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_REF(FireCannon)) + RegisterSignal(H, COMSIG_MOB_CLICKON, .proc/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_REF(ResetIcon)), 100) + addtimer(CALLBACK(src, .proc/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_REF(StopDroppingOil)), 30) + addtimer(CALLBACK(src, .proc/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_REF(LeaveCannonMode)), 20) + addtimer(CALLBACK(src, .proc/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_REF(EnterCannonMode)), 20) + addtimer(CALLBACK(src, .proc/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 8d6acea28452..b70ea004fd37 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_REF(grind)), 2) + addtimer(CALLBACK(src, .proc/grind), 2) return else grinding = FALSE diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index 18841271cfc0..26335d43f03d 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, TYPE_PROC_REF(/obj/vehicle/ridden/scooter/skateboard, grind)), 2) + addtimer(CALLBACK(V, /obj/vehicle/ridden/scooter/skateboard/.proc/grind), 2) next_ollie = world.time + 5 diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm index 1f6c96bc0c01..e9dc5d9b6488 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_REF(can_user_rotate)),CALLBACK(src, PROC_REF(can_be_rotated)),null) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/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 140d8c42a283..5732b2b2f6c5 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -45,6 +45,7 @@ /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, @@ -121,6 +122,7 @@ /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 d71dcae5ab41..1e9a3460f064 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/hades, + "Tactical Energy Gun" = /obj/item/gun/energy/e_gun/stun, "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 9c4f7c376425..a774f048f443 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 janitors everywhere!" + product_ads = "Come and get your janitorial clothing, now endorsed by lizard 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,7 +410,8 @@ /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/toy/plush/narplush = 1, + /obj/item/clothing/head/medievaljewhat = 3) 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 dbd88b20c582..30f94b56c1ca 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_REF(zombify), owner), revive_time, flags) + timer_id = addtimer(CALLBACK(src, .proc/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 new file mode 100644 index 000000000000..f7b21b503dd7 --- /dev/null +++ b/config/atmos_mix.txt @@ -0,0 +1,14 @@ +## 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 new file mode 100644 index 000000000000..5c685d825e0a --- /dev/null +++ b/config/awaymissionconfig.txt @@ -0,0 +1,23 @@ +#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 7a579123028b..0cdece6b6a16 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 -## Lore address -# LOREURL https://shiptest.net/wiki/Lore_Primer +## forum address +# FORUMURL https://shiptest.net/discord ## Wiki address # WIKIURL https://shiptest.net/wiki/ diff --git a/config/external_rsc_urls.txt b/config/external_rsc_urls.txt new file mode 100644 index 000000000000..16d6faf653e8 --- /dev/null +++ b/config/external_rsc_urls.txt @@ -0,0 +1 @@ +http://url_goes_here/shiptest.zip diff --git a/config/iceruinblacklist.txt b/config/iceruinblacklist.txt new file mode 100644 index 000000000000..031188b80de3 --- /dev/null +++ b/config/iceruinblacklist.txt @@ -0,0 +1,18 @@ +#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 new file mode 100644 index 000000000000..a266110233d0 --- /dev/null +++ b/config/jobs.txt @@ -0,0 +1,50 @@ +#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 new file mode 100644 index 000000000000..faf518fde632 --- /dev/null +++ b/config/jungleruinblacklist.txt @@ -0,0 +1,27 @@ +#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 new file mode 100644 index 000000000000..973b402ba7a1 --- /dev/null +++ b/config/lavaruinblacklist.txt @@ -0,0 +1,43 @@ +#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 new file mode 100644 index 000000000000..23a0a19dcd45 --- /dev/null +++ b/config/maps.txt @@ -0,0 +1,66 @@ +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 3a852e483ad8..9cf9bea30a06 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://url_goes_here/shiptest.zip +EXTERNAL_RSC_URLS http://cdn.white-sands.space/rsc/tgstation.rsc ######################## diff --git a/config/rockruinblacklist.txt b/config/rockruinblacklist.txt new file mode 100644 index 000000000000..e38e248cd109 --- /dev/null +++ b/config/rockruinblacklist.txt @@ -0,0 +1,29 @@ +#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 new file mode 100644 index 000000000000..f54299fc4e44 --- /dev/null +++ b/config/sandruinblacklist.txt @@ -0,0 +1,12 @@ +#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 new file mode 100644 index 000000000000..f7116456ed5f --- /dev/null +++ b/config/spaceruinblacklist.txt @@ -0,0 +1,42 @@ +#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 4c0e693518ce..ad77caaddd75 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.1 +export RUST_VERSION=1.67.0 #rust_g git tag -export RUST_G_VERSION=3.0.0 +export RUST_G_VERSION=1.2.0 #node version export NODE_VERSION=16 @@ -27,4 +27,4 @@ export PYTHON_VERSION=3.7.9 export AUXMOS_REPO=https://github.com/shiptest-ss13/auxmos #auxmos version -export AUXMOS_VERSION=v1.2.6 +export AUXMOS_VERSION=v1.1.0 diff --git a/html/changelogs/AutoChangeLog-pr-2603.yml b/html/changelogs/AutoChangeLog-pr-2603.yml deleted file mode 100644 index 8658a15f81fb..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2603.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {bugfix: Material tile sprites} -delete-after: true diff --git a/html/changelogs/archive/2023-10.yml b/html/changelogs/archive/2023-10.yml index 34dc45ee6419..7f895552d0b9 100644 --- a/html/changelogs/archive/2023-10.yml +++ b/html/changelogs/archive/2023-10.yml @@ -87,15 +87,3 @@ - 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 deleted file mode 100644 index d15d377eecd2..000000000000 --- a/html/changelogs/archive/2023-11.yml +++ /dev/null @@ -1,165 +0,0 @@ -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 deleted file mode 100644 index 85ef9859457e..000000000000 --- a/html/changelogs/archive/2023-12.yml +++ /dev/null @@ -1,98 +0,0 @@ -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 diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 0aa256c631e4..610c8768cd75 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 05301f14a831..847c252bbfb6 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 50e88be487b0..1efce1eea691 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 601146297cc4..0d09de828d05 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 1e03d316c2e3..4d8c0f925b41 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 c52e55c475a6..c72dbc97acdc 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 bfde13162237..5d4ee686cde5 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 13baacb46614..105b302b7ffb 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 3440e0b3e663..02e39b1a0ae4 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 deleted file mode 100644 index 1c5ef723b094..000000000000 Binary files a/icons/mob/clothing/faction/gezena/back.dmi and /dev/null differ diff --git a/icons/mob/clothing/faction/gezena/belt.dmi b/icons/mob/clothing/faction/gezena/belt.dmi deleted file mode 100644 index cdd27bcf1e96..000000000000 Binary files a/icons/mob/clothing/faction/gezena/belt.dmi and /dev/null differ diff --git a/icons/mob/clothing/faction/gezena/feet.dmi b/icons/mob/clothing/faction/gezena/feet.dmi deleted file mode 100644 index f0d1fb0a6550..000000000000 Binary files a/icons/mob/clothing/faction/gezena/feet.dmi and /dev/null differ diff --git a/icons/mob/clothing/faction/gezena/hands.dmi b/icons/mob/clothing/faction/gezena/hands.dmi deleted file mode 100644 index 8e9a99d30dab..000000000000 Binary files a/icons/mob/clothing/faction/gezena/hands.dmi and /dev/null differ diff --git a/icons/mob/clothing/faction/gezena/head.dmi b/icons/mob/clothing/faction/gezena/head.dmi deleted file mode 100644 index c2c20b63e559..000000000000 Binary files a/icons/mob/clothing/faction/gezena/head.dmi and /dev/null differ diff --git a/icons/mob/clothing/faction/gezena/neck.dmi b/icons/mob/clothing/faction/gezena/neck.dmi deleted file mode 100644 index 9b3fa0c9bbab..000000000000 Binary files a/icons/mob/clothing/faction/gezena/neck.dmi and /dev/null differ diff --git a/icons/mob/clothing/faction/gezena/suits.dmi b/icons/mob/clothing/faction/gezena/suits.dmi deleted file mode 100644 index c76b3368c644..000000000000 Binary files a/icons/mob/clothing/faction/gezena/suits.dmi and /dev/null differ diff --git a/icons/mob/clothing/faction/gezena/uniforms.dmi b/icons/mob/clothing/faction/gezena/uniforms.dmi deleted file mode 100644 index 4f3d45acbed2..000000000000 Binary files a/icons/mob/clothing/faction/gezena/uniforms.dmi and /dev/null differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index e9e6444a4795..fe964b935915 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 0afcd0ad26c5..cff3d7ac5c34 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 35f629b7c864..12c3ce8027de 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 deleted file mode 100644 index 321896641390..000000000000 Binary files a/icons/mob/clothing/head/winterhood.dmi and /dev/null differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 9d430d39a7a7..90a54af8fa9e 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 cd64b37eaf3c..63368044af97 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 3a54f3ac93f2..d94f3a98d4f0 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 bc8daf14abd6..82316d0e030c 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 5988b39e8a6a..a19af8b7aa64 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 6350fec50200..6e97b33cd1b7 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 deleted file mode 100644 index 4d09ed00a49b..000000000000 Binary files a/icons/mob/clothing/suits/wintercoat.dmi and /dev/null differ diff --git a/icons/mob/clothing/towel.dmi b/icons/mob/clothing/towel.dmi deleted file mode 100644 index fddf3762b61a..000000000000 Binary files a/icons/mob/clothing/towel.dmi and /dev/null differ diff --git a/icons/mob/clothing/under/command.dmi b/icons/mob/clothing/under/command.dmi index fd5f1af01e88..4793c609aed9 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 a67fcb85331f..eac316815846 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 3d9b1e41a3b0..4a5978b9f7f3 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 7168514ee697..3eb82401831c 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 5574cfb965b7..9d7fdc7a7c9d 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 054daef8c0d1..a3a60ccfc2a7 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 ad11d77748d0..d3d4db41316e 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 cafc9fab781c..4e109e922697 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 d130ba2cf2e3..bd508c89ebd0 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 e1bbea2b2006..f9a4f9cc7874 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 4e816bbecc65..6fb879f40e7c 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 9ae2124fa4c5..1febae88e98c 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 f77386a90062..4a6ec93b5f21 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 deleted file mode 100644 index 002fd97dafa0..000000000000 Binary files a/icons/mob/inhands/faction/gezena/gezena_lefthand.dmi and /dev/null differ diff --git a/icons/mob/inhands/faction/gezena/gezena_righthand.dmi b/icons/mob/inhands/faction/gezena/gezena_righthand.dmi deleted file mode 100644 index 0c2bd0479004..000000000000 Binary files a/icons/mob/inhands/faction/gezena/gezena_righthand.dmi and /dev/null differ diff --git a/icons/mob/inhands/misc/food_lefthand.dmi b/icons/mob/inhands/misc/food_lefthand.dmi index 740c63c4b370..da4f2fa1826c 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 1e90ac3cb75a..b6426e836780 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 7b15fb84a247..e0e1fa1a83f1 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 0354d2352120..0eebe19f4c16 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 557f281d1502..9ddba4cf47e7 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 86311ca3172e..7127d6c0cccc 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 142386586679..64d0cc4ef8ce 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/species/kepori/onmob_suit_kepori.dmi b/icons/mob/species/kepori/onmob_suit_kepori.dmi index 4d5eaaab1196..9253a5b0be28 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 d9bec6e95185..1e0416588ae3 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 9f7a7ca89b50..ce88a8ba93da 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 beeb7887b8b5..6d661308c093 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 7a43feeda795..d2950ac19bbc 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 deleted file mode 100644 index eaadb820ebc1..000000000000 Binary files a/icons/mob/species/lizard/spines.dmi and /dev/null differ diff --git a/icons/mob/species/lizard/tails.dmi b/icons/mob/species/lizard/tails.dmi index aea38b93e9ac..16a7dc0b00ed 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 aaab4f1b8637..685110a16114 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 7c6aca4107b1..37ff2b130323 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 9ad6cc1827ed..c5316bab988f 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 31dd9ad9c8e6..eaca5e34a629 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 da344bb33a3b..6971b406bce7 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 94fe73ee6a0a..cef6559f29e7 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 907614753ddd..d04b5a719e30 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 new file mode 100644 index 000000000000..81b4b29a1262 Binary files /dev/null and b/icons/mob/species/rachnid/spider_mandibles.dmi differ diff --git a/icons/mob/species/rachnid/spider_spinneret.dmi b/icons/mob/species/rachnid/spider_spinneret.dmi index 6f7fcc9f965c..9adf49f05837 100644 Binary files a/icons/mob/species/rachnid/spider_spinneret.dmi and b/icons/mob/species/rachnid/spider_spinneret.dmi differ diff --git a/icons/obj/aicards.dmi b/icons/obj/aicards.dmi index 5698962eb9fb..f6847dfe2d7a 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 038ad37895ca..96528874fee3 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 dff8070e67e4..62d085bd97e7 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 deleted file mode 100644 index b07676386259..000000000000 Binary files a/icons/obj/clothing/faction/gezena/belt.dmi and /dev/null differ diff --git a/icons/obj/clothing/faction/gezena/feet.dmi b/icons/obj/clothing/faction/gezena/feet.dmi deleted file mode 100644 index f3a23a70de35..000000000000 Binary files a/icons/obj/clothing/faction/gezena/feet.dmi and /dev/null differ diff --git a/icons/obj/clothing/faction/gezena/hands.dmi b/icons/obj/clothing/faction/gezena/hands.dmi deleted file mode 100644 index 3daa7c762d38..000000000000 Binary files a/icons/obj/clothing/faction/gezena/hands.dmi and /dev/null differ diff --git a/icons/obj/clothing/faction/gezena/head.dmi b/icons/obj/clothing/faction/gezena/head.dmi deleted file mode 100644 index 11454b333921..000000000000 Binary files a/icons/obj/clothing/faction/gezena/head.dmi and /dev/null differ diff --git a/icons/obj/clothing/faction/gezena/neck.dmi b/icons/obj/clothing/faction/gezena/neck.dmi deleted file mode 100644 index 19d51f6a64ae..000000000000 Binary files a/icons/obj/clothing/faction/gezena/neck.dmi and /dev/null differ diff --git a/icons/obj/clothing/faction/gezena/suits.dmi b/icons/obj/clothing/faction/gezena/suits.dmi deleted file mode 100644 index 09e00adf3289..000000000000 Binary files a/icons/obj/clothing/faction/gezena/suits.dmi and /dev/null differ diff --git a/icons/obj/clothing/faction/gezena/uniforms.dmi b/icons/obj/clothing/faction/gezena/uniforms.dmi deleted file mode 100644 index ed9a863e3d57..000000000000 Binary files a/icons/obj/clothing/faction/gezena/uniforms.dmi and /dev/null differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index ff36ce0bce5e..e74978adb047 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 3a77a2e55885..3b37b555f4df 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 deleted file mode 100644 index aa212eb48da2..000000000000 Binary files a/icons/obj/clothing/head/winterhood.dmi and /dev/null differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 5f0cb3b84fed..89d5ed3328bd 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 7123ae5ab1c2..efc8359fc5cf 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 e0a755c5ca83..32714635d084 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 758c4836aeb0..bdc98ad8852d 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 366b69d85139..eaf68b6f9cbd 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 bd8b5e13597f..7ab05863bf05 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 deleted file mode 100644 index 386b905064ae..000000000000 Binary files a/icons/obj/clothing/suits/wintercoat.dmi and /dev/null differ diff --git a/icons/obj/clothing/towel.dmi b/icons/obj/clothing/towel.dmi deleted file mode 100644 index 93001ef29bc3..000000000000 Binary files a/icons/obj/clothing/towel.dmi and /dev/null differ diff --git a/icons/obj/clothing/under/command.dmi b/icons/obj/clothing/under/command.dmi index d5d48999bec3..761796ada9e5 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 7cb59b080c3f..6227cb21a9b7 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 3a0b6ff996b7..9b1630feb16b 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 5508cf0b3c8e..89c576fb6069 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 b0d9bd53a345..b3fe3b860e70 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 03fdf63dd00b..5083b4acc226 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 ddf9be7b356f..b1ed971658eb 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 389949dcfa08..453bfaf277b7 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 1205fd888adc..8a0e61db9a57 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 89bacfc64afd..732e37318768 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 3208083cd0bd..ee323e39c197 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 deleted file mode 100644 index 91e2ef30d785..000000000000 Binary files a/icons/obj/guns/faction/gezena/48x32.dmi and /dev/null differ diff --git a/icons/obj/guns/faction/gezena/energy.dmi b/icons/obj/guns/faction/gezena/energy.dmi deleted file mode 100644 index 92d88bbab4e6..000000000000 Binary files a/icons/obj/guns/faction/gezena/energy.dmi and /dev/null differ diff --git a/icons/obj/guns/faction/gezena/lefthand.dmi b/icons/obj/guns/faction/gezena/lefthand.dmi deleted file mode 100644 index 9bec84cd36bb..000000000000 Binary files a/icons/obj/guns/faction/gezena/lefthand.dmi and /dev/null differ diff --git a/icons/obj/guns/faction/gezena/righthand.dmi b/icons/obj/guns/faction/gezena/righthand.dmi deleted file mode 100644 index d2d76ebb433d..000000000000 Binary files a/icons/obj/guns/faction/gezena/righthand.dmi and /dev/null differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 02e7d3812dcb..24b209d6ab2b 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 deleted file mode 100644 index 072a483fa795..000000000000 Binary files a/icons/obj/guns/safety.dmi and /dev/null differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index b07ae679471d..aeae4b17a44e 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 7a20a687e055..56246df09ad9 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 c804d82f1769..d35d013715b1 100644 Binary files a/icons/obj/lavaland/ash_flora.dmi and b/icons/obj/lavaland/ash_flora.dmi differ diff --git a/icons/obj/miningradio.dmi b/icons/obj/miningradio.dmi deleted file mode 100644 index 08b6052e91a0..000000000000 Binary files a/icons/obj/miningradio.dmi and /dev/null differ diff --git a/icons/obj/modular_laptop.dmi b/icons/obj/modular_laptop.dmi index e2405820bb47..5d1c3dee66ac 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 340bc0f9a5c6..ff211d21d5c2 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 2c982a8ac8f9..8d1f4993e770 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 8ce2ccae3973..e58811689631 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 89f94e16a65a..1ac2c63ed367 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 ee2ddf8568e0..bac35e68e147 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 4b23b27a8f35..2f1d6d90c6bf 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 be82f0d319d2..56442452e724 100644 Binary files a/icons/obj/projectiles_tracer.dmi and b/icons/obj/projectiles_tracer.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 250f7220713d..241476f84bd6 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 a984d69cf030..7c265737266a 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 d94097ddf2e5..1fa68293cd4a 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 78aebb9416c4..583a9fe6c7c6 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 c670e677d226..e14d164289bc 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 c3c773e8efa9..3f96841a71da 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 6801384e0182..594a4f91e6c2 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 b8c52e459638..33e3fab9a478 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 0093e756393f..e92c1cac13f1 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/lore() - set name = "lore" - set desc = "View the lore landing page." +/client/verb/forum() + set name = "forum" + set desc = "Visit the forum." set hidden = TRUE - 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") + var/forumurl = CONFIG_GET(string/forumurl) + if(forumurl) + if(alert("This will open the forum in your browser. Are you sure?",,"Yes","No")!="Yes") return - src << link(loreurl) + src << link(forumurl) else - to_chat(src, "The lore page URL is not set in the server configuration.") + to_chat(src, "The forum URL is not set in the server configuration.") return /client/verb/rules() diff --git a/interface/skin.dmf b/interface/skin.dmf index 9d933e057c46..72e535bf7197 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 = 88x20 + size = 80x20 anchor1 = 1,0 anchor2 = 14,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a saved-params = "is-checked" - text = "Changes" + text = "Changelog" command = "changelog" elem "rules" type = BUTTON - pos = 104,5 - size = 80x20 + pos = 96,5 + size = 88x20 anchor1 = 15,0 - anchor2 = 28,0 + anchor2 = 29,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 = 280,5 + pos = 288,5 size = 80x20 - anchor1 = 38,0 - anchor2 = 51,0 + anchor1 = 45,0 + anchor2 = 58,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a saved-params = "is-checked" text = "Wiki" command = "wiki" - elem "lore" + elem "forum" type = BUTTON - pos = 368,5 + pos = 376,5 size = 80x20 - anchor1 = 52,0 - anchor2 = 65,0 + anchor1 = 59,0 + anchor2 = 71,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a saved-params = "is-checked" - text = "Lore" - command = "lore" + text = "Forum" + command = "forum" elem "github" type = BUTTON - pos = 456,5 + pos = 464,5 size = 80x20 - anchor1 = 66,0 - anchor2 = 79,0 + anchor1 = 73,0 + anchor2 = 85,0 font-family = "Verdana" text-color = #ffffff background-color = #40628a @@ -221,10 +221,10 @@ window "infowindow" command = "github" elem "report-issue" type = BUTTON - pos = 544,5 + pos = 552,5 size = 80x20 - anchor1 = 80,0 - anchor2 = 93,0 + anchor1 = 86,0 + anchor2 = 99,0 font-family = "Verdana" font-size = 8 text-color = #ffffff diff --git a/shiptest.dme b/shiptest.dme index e933dfe020ce..772345db1bb2 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -56,7 +56,6 @@ #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" @@ -176,7 +175,6 @@ #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" @@ -530,7 +528,6 @@ #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" @@ -859,6 +856,7 @@ #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" @@ -1357,7 +1355,6 @@ #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" @@ -1446,7 +1443,6 @@ #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" @@ -1463,6 +1459,7 @@ #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" @@ -1683,6 +1680,7 @@ #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" @@ -1920,9 +1918,7 @@ #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" @@ -1948,20 +1944,13 @@ #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\syndicate.dm" +#include "code\modules\clothing\outfits\vr.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" @@ -2109,7 +2098,6 @@ #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" @@ -2316,6 +2304,7 @@ #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" @@ -2371,7 +2360,6 @@ #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" @@ -2529,6 +2517,7 @@ #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" @@ -3006,7 +2995,6 @@ #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" @@ -3080,7 +3068,6 @@ #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" @@ -3313,6 +3300,7 @@ #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/weapons/effects/deflect.ogg b/sound/weapons/effects/deflect.ogg deleted file mode 100644 index a4e9ed6ba4c0..000000000000 Binary files a/sound/weapons/effects/deflect.ogg and /dev/null differ diff --git a/sound/weapons/effects/ric1.ogg b/sound/weapons/effects/ric1.ogg new file mode 100644 index 000000000000..b7f7bd99ca5a Binary files /dev/null and b/sound/weapons/effects/ric1.ogg differ diff --git a/sound/weapons/effects/ric2.ogg b/sound/weapons/effects/ric2.ogg new file mode 100644 index 000000000000..dcd44b07329e Binary files /dev/null and b/sound/weapons/effects/ric2.ogg differ diff --git a/sound/weapons/effects/ric3.ogg b/sound/weapons/effects/ric3.ogg new file mode 100644 index 000000000000..c538a97e35a6 Binary files /dev/null and b/sound/weapons/effects/ric3.ogg differ diff --git a/sound/weapons/effects/ric4.ogg b/sound/weapons/effects/ric4.ogg new file mode 100644 index 000000000000..ac872734beaa Binary files /dev/null and b/sound/weapons/effects/ric4.ogg differ diff --git a/sound/weapons/effects/ric5.ogg b/sound/weapons/effects/ric5.ogg new file mode 100644 index 000000000000..2c946c457d6b Binary files /dev/null and b/sound/weapons/effects/ric5.ogg differ diff --git a/sound/weapons/gun/energy/laserpistol.ogg b/sound/weapons/gun/energy/laserpistol.ogg deleted file mode 100644 index 2eb881d0c4ab..000000000000 Binary files a/sound/weapons/gun/energy/laserpistol.ogg and /dev/null differ diff --git a/sound/weapons/gun/energy/lasersniper.ogg b/sound/weapons/gun/energy/lasersniper.ogg deleted file mode 100644 index a773bd203d12..000000000000 Binary files a/sound/weapons/gun/energy/lasersniper.ogg and /dev/null differ diff --git a/sound/weapons/gun/laser/heavy_laser.ogg b/sound/weapons/gun/gauss/magovercharge.ogg similarity index 100% rename from sound/weapons/gun/laser/heavy_laser.ogg rename to sound/weapons/gun/gauss/magovercharge.ogg diff --git a/sound/weapons/gun/general/bulletcasing_bounce1.ogg b/sound/weapons/gun/general/bulletcasing_bounce1.ogg deleted file mode 100644 index c33a27fa5007..000000000000 Binary files a/sound/weapons/gun/general/bulletcasing_bounce1.ogg and /dev/null differ diff --git a/sound/weapons/gun/general/bulletcasing_bounce2.ogg b/sound/weapons/gun/general/bulletcasing_bounce2.ogg deleted file mode 100644 index f8d516643b25..000000000000 Binary files a/sound/weapons/gun/general/bulletcasing_bounce2.ogg and /dev/null differ diff --git a/sound/weapons/gun/general/bulletcasing_bounce3.ogg b/sound/weapons/gun/general/bulletcasing_bounce3.ogg deleted file mode 100644 index 84e670706284..000000000000 Binary files a/sound/weapons/gun/general/bulletcasing_bounce3.ogg and /dev/null differ diff --git a/sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg b/sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg deleted file mode 100644 index 324543b62587..000000000000 Binary files a/sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg and /dev/null differ diff --git a/sound/weapons/gun/general/rocket_load.ogg b/sound/weapons/gun/general/rocket_load.ogg deleted file mode 100644 index 4c5a2ec6911d..000000000000 Binary files a/sound/weapons/gun/general/rocket_load.ogg and /dev/null differ diff --git a/sound/weapons/gun/general/selector.ogg b/sound/weapons/gun/general/selector.ogg deleted file mode 100644 index 298181609e49..000000000000 Binary files a/sound/weapons/gun/general/selector.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_bounce1.ogg b/sound/weapons/gun/hit/bullet_bounce1.ogg deleted file mode 100644 index a8a1fb36f385..000000000000 Binary files a/sound/weapons/gun/hit/bullet_bounce1.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_bounce2.ogg b/sound/weapons/gun/hit/bullet_bounce2.ogg deleted file mode 100644 index a06a0c320e9e..000000000000 Binary files a/sound/weapons/gun/hit/bullet_bounce2.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_bounce3.ogg b/sound/weapons/gun/hit/bullet_bounce3.ogg deleted file mode 100644 index 4313703c760b..000000000000 Binary files a/sound/weapons/gun/hit/bullet_bounce3.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_bounce4.ogg b/sound/weapons/gun/hit/bullet_bounce4.ogg deleted file mode 100644 index a3c2c34ec018..000000000000 Binary files a/sound/weapons/gun/hit/bullet_bounce4.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_bounce5.ogg b/sound/weapons/gun/hit/bullet_bounce5.ogg deleted file mode 100644 index 35b8be603534..000000000000 Binary files a/sound/weapons/gun/hit/bullet_bounce5.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_glass_01.ogg b/sound/weapons/gun/hit/bullet_glass_01.ogg deleted file mode 100644 index 30f6f1fb612b..000000000000 Binary files a/sound/weapons/gun/hit/bullet_glass_01.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_glass_02.ogg b/sound/weapons/gun/hit/bullet_glass_02.ogg deleted file mode 100644 index 472f98e9801a..000000000000 Binary files a/sound/weapons/gun/hit/bullet_glass_02.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_glass_03.ogg b/sound/weapons/gun/hit/bullet_glass_03.ogg deleted file mode 100644 index 25c6df47a921..000000000000 Binary files a/sound/weapons/gun/hit/bullet_glass_03.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_glass_04.ogg b/sound/weapons/gun/hit/bullet_glass_04.ogg deleted file mode 100644 index b525f665c414..000000000000 Binary files a/sound/weapons/gun/hit/bullet_glass_04.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_glass_05.ogg b/sound/weapons/gun/hit/bullet_glass_05.ogg deleted file mode 100644 index 89ff21723aac..000000000000 Binary files a/sound/weapons/gun/hit/bullet_glass_05.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_glass_06.ogg b/sound/weapons/gun/hit/bullet_glass_06.ogg deleted file mode 100644 index 26cacb990766..000000000000 Binary files a/sound/weapons/gun/hit/bullet_glass_06.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_glass_07.ogg b/sound/weapons/gun/hit/bullet_glass_07.ogg deleted file mode 100644 index 110a45074d17..000000000000 Binary files a/sound/weapons/gun/hit/bullet_glass_07.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_impact1.ogg b/sound/weapons/gun/hit/bullet_impact1.ogg deleted file mode 100644 index 4c0cd5b5eebb..000000000000 Binary files a/sound/weapons/gun/hit/bullet_impact1.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_impact2.ogg b/sound/weapons/gun/hit/bullet_impact2.ogg deleted file mode 100644 index bfffcfeadfaa..000000000000 Binary files a/sound/weapons/gun/hit/bullet_impact2.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_impact3.ogg b/sound/weapons/gun/hit/bullet_impact3.ogg deleted file mode 100644 index 0356dc6c8819..000000000000 Binary files a/sound/weapons/gun/hit/bullet_impact3.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_masonry_01.ogg b/sound/weapons/gun/hit/bullet_masonry_01.ogg deleted file mode 100644 index 1a04e7688d63..000000000000 Binary files a/sound/weapons/gun/hit/bullet_masonry_01.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_masonry_02.ogg b/sound/weapons/gun/hit/bullet_masonry_02.ogg deleted file mode 100644 index 770e9e242a7f..000000000000 Binary files a/sound/weapons/gun/hit/bullet_masonry_02.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_masonry_03.ogg b/sound/weapons/gun/hit/bullet_masonry_03.ogg deleted file mode 100644 index c0eb0bf13233..000000000000 Binary files a/sound/weapons/gun/hit/bullet_masonry_03.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_masonry_04.ogg b/sound/weapons/gun/hit/bullet_masonry_04.ogg deleted file mode 100644 index 83cbc57ebd83..000000000000 Binary files a/sound/weapons/gun/hit/bullet_masonry_04.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_masonry_05.ogg b/sound/weapons/gun/hit/bullet_masonry_05.ogg deleted file mode 100644 index 6d9a67304659..000000000000 Binary files a/sound/weapons/gun/hit/bullet_masonry_05.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_masonry_06.ogg b/sound/weapons/gun/hit/bullet_masonry_06.ogg deleted file mode 100644 index 2a982a56edb9..000000000000 Binary files a/sound/weapons/gun/hit/bullet_masonry_06.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_metal_01.ogg b/sound/weapons/gun/hit/bullet_metal_01.ogg deleted file mode 100644 index 1a706abd90c0..000000000000 Binary files a/sound/weapons/gun/hit/bullet_metal_01.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_metal_02.ogg b/sound/weapons/gun/hit/bullet_metal_02.ogg deleted file mode 100644 index ee938e2a593d..000000000000 Binary files a/sound/weapons/gun/hit/bullet_metal_02.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_metal_03.ogg b/sound/weapons/gun/hit/bullet_metal_03.ogg deleted file mode 100644 index 9ede9f161290..000000000000 Binary files a/sound/weapons/gun/hit/bullet_metal_03.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_metal_04.ogg b/sound/weapons/gun/hit/bullet_metal_04.ogg deleted file mode 100644 index bf6824c8cefd..000000000000 Binary files a/sound/weapons/gun/hit/bullet_metal_04.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_metal_05.ogg b/sound/weapons/gun/hit/bullet_metal_05.ogg deleted file mode 100644 index a45e3d6204e4..000000000000 Binary files a/sound/weapons/gun/hit/bullet_metal_05.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_metal_06.ogg b/sound/weapons/gun/hit/bullet_metal_06.ogg deleted file mode 100644 index 53877b5e8ce6..000000000000 Binary files a/sound/weapons/gun/hit/bullet_metal_06.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_miss1.ogg b/sound/weapons/gun/hit/bullet_miss1.ogg deleted file mode 100644 index dfff45a0cb5d..000000000000 Binary files a/sound/weapons/gun/hit/bullet_miss1.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_miss2.ogg b/sound/weapons/gun/hit/bullet_miss2.ogg deleted file mode 100644 index 54b111128021..000000000000 Binary files a/sound/weapons/gun/hit/bullet_miss2.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_miss3.ogg b/sound/weapons/gun/hit/bullet_miss3.ogg deleted file mode 100644 index fbff6dde9046..000000000000 Binary files a/sound/weapons/gun/hit/bullet_miss3.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_miss4.ogg b/sound/weapons/gun/hit/bullet_miss4.ogg deleted file mode 100644 index 6392d6676915..000000000000 Binary files a/sound/weapons/gun/hit/bullet_miss4.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_ricochet1.ogg b/sound/weapons/gun/hit/bullet_ricochet1.ogg deleted file mode 100644 index 724f599cd5bd..000000000000 Binary files a/sound/weapons/gun/hit/bullet_ricochet1.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_ricochet2.ogg b/sound/weapons/gun/hit/bullet_ricochet2.ogg deleted file mode 100644 index 1c29b9e64e20..000000000000 Binary files a/sound/weapons/gun/hit/bullet_ricochet2.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_ricochet3.ogg b/sound/weapons/gun/hit/bullet_ricochet3.ogg deleted file mode 100644 index 96d470ffe2cb..000000000000 Binary files a/sound/weapons/gun/hit/bullet_ricochet3.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_ricochet4.ogg b/sound/weapons/gun/hit/bullet_ricochet4.ogg deleted file mode 100644 index bde8fda3f4c4..000000000000 Binary files a/sound/weapons/gun/hit/bullet_ricochet4.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_ricochet5.ogg b/sound/weapons/gun/hit/bullet_ricochet5.ogg deleted file mode 100644 index eba86301354f..000000000000 Binary files a/sound/weapons/gun/hit/bullet_ricochet5.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_ricochet6.ogg b/sound/weapons/gun/hit/bullet_ricochet6.ogg deleted file mode 100644 index b143a3c2bdc9..000000000000 Binary files a/sound/weapons/gun/hit/bullet_ricochet6.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_ricochet7.ogg b/sound/weapons/gun/hit/bullet_ricochet7.ogg deleted file mode 100644 index 68a2ee63fa02..000000000000 Binary files a/sound/weapons/gun/hit/bullet_ricochet7.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_ricochet8.ogg b/sound/weapons/gun/hit/bullet_ricochet8.ogg deleted file mode 100644 index 622d8b6941ee..000000000000 Binary files a/sound/weapons/gun/hit/bullet_ricochet8.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_snow_01.ogg b/sound/weapons/gun/hit/bullet_snow_01.ogg deleted file mode 100644 index 4da742bf1462..000000000000 Binary files a/sound/weapons/gun/hit/bullet_snow_01.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_snow_02.ogg b/sound/weapons/gun/hit/bullet_snow_02.ogg deleted file mode 100644 index 21572daf13d7..000000000000 Binary files a/sound/weapons/gun/hit/bullet_snow_02.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_snow_03.ogg b/sound/weapons/gun/hit/bullet_snow_03.ogg deleted file mode 100644 index fb8e1dcb9dad..000000000000 Binary files a/sound/weapons/gun/hit/bullet_snow_03.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_snow_04.ogg b/sound/weapons/gun/hit/bullet_snow_04.ogg deleted file mode 100644 index 2bfb46d958b2..000000000000 Binary files a/sound/weapons/gun/hit/bullet_snow_04.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_snow_05.ogg b/sound/weapons/gun/hit/bullet_snow_05.ogg deleted file mode 100644 index 3752f95b3d62..000000000000 Binary files a/sound/weapons/gun/hit/bullet_snow_05.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_snow_06.ogg b/sound/weapons/gun/hit/bullet_snow_06.ogg deleted file mode 100644 index cac69cc7404c..000000000000 Binary files a/sound/weapons/gun/hit/bullet_snow_06.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_wood_01.ogg b/sound/weapons/gun/hit/bullet_wood_01.ogg deleted file mode 100644 index 559310853f95..000000000000 Binary files a/sound/weapons/gun/hit/bullet_wood_01.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_wood_02.ogg b/sound/weapons/gun/hit/bullet_wood_02.ogg deleted file mode 100644 index 852c1d875cde..000000000000 Binary files a/sound/weapons/gun/hit/bullet_wood_02.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_wood_03.ogg b/sound/weapons/gun/hit/bullet_wood_03.ogg deleted file mode 100644 index 440681e0da48..000000000000 Binary files a/sound/weapons/gun/hit/bullet_wood_03.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_wood_04.ogg b/sound/weapons/gun/hit/bullet_wood_04.ogg deleted file mode 100644 index 89ddd21e2bbd..000000000000 Binary files a/sound/weapons/gun/hit/bullet_wood_04.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_wood_05.ogg b/sound/weapons/gun/hit/bullet_wood_05.ogg deleted file mode 100644 index 3a66b3f32c8a..000000000000 Binary files a/sound/weapons/gun/hit/bullet_wood_05.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/bullet_wood_06.ogg b/sound/weapons/gun/hit/bullet_wood_06.ogg deleted file mode 100644 index cf54f8cc8f58..000000000000 Binary files a/sound/weapons/gun/hit/bullet_wood_06.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/energy_impact1.ogg b/sound/weapons/gun/hit/energy_impact1.ogg deleted file mode 100644 index e9d6305972ca..000000000000 Binary files a/sound/weapons/gun/hit/energy_impact1.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/energy_miss1.ogg b/sound/weapons/gun/hit/energy_miss1.ogg deleted file mode 100644 index 55839b14d3d1..000000000000 Binary files a/sound/weapons/gun/hit/energy_miss1.ogg and /dev/null differ diff --git a/sound/weapons/gun/hit/energy_ricochet1.ogg b/sound/weapons/gun/hit/energy_ricochet1.ogg deleted file mode 100644 index 7601f7823a79..000000000000 Binary files a/sound/weapons/gun/hit/energy_ricochet1.ogg and /dev/null differ diff --git a/sound/weapons/gun/laser/e-fire.ogg b/sound/weapons/gun/laser/e-fire.ogg deleted file mode 100644 index bb8242352f20..000000000000 Binary files a/sound/weapons/gun/laser/e-fire.ogg and /dev/null differ diff --git a/sound/weapons/gun/laser/e40_bal.ogg b/sound/weapons/gun/laser/e40_bal.ogg deleted file mode 100644 index 3f37e9be92a5..000000000000 Binary files a/sound/weapons/gun/laser/e40_bal.ogg and /dev/null differ diff --git a/sound/weapons/gun/laser/e40_las.ogg b/sound/weapons/gun/laser/e40_las.ogg deleted file mode 100644 index 33c5ab017f14..000000000000 Binary files a/sound/weapons/gun/laser/e40_las.ogg and /dev/null differ diff --git a/sound/weapons/gun/laser/nt-fire.ogg b/sound/weapons/gun/laser/nt-fire.ogg deleted file mode 100644 index 4ff9e82ff991..000000000000 Binary files a/sound/weapons/gun/laser/nt-fire.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/commander.ogg b/sound/weapons/gun/pistol/commander.ogg deleted file mode 100644 index 57ba0a347c84..000000000000 Binary files a/sound/weapons/gun/pistol/commander.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/deagle.ogg b/sound/weapons/gun/pistol/deagle.ogg deleted file mode 100644 index 41d814d2fcec..000000000000 Binary files a/sound/weapons/gun/pistol/deagle.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/deagle_reload.ogg b/sound/weapons/gun/pistol/deagle_reload.ogg deleted file mode 100644 index 77abf293efc6..000000000000 Binary files a/sound/weapons/gun/pistol/deagle_reload.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/deagle_unload.ogg b/sound/weapons/gun/pistol/deagle_unload.ogg deleted file mode 100644 index 84b18d575b7f..000000000000 Binary files a/sound/weapons/gun/pistol/deagle_unload.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/himehabu.ogg b/sound/weapons/gun/pistol/himehabu.ogg deleted file mode 100644 index ad2dc7cfcc41..000000000000 Binary files a/sound/weapons/gun/pistol/himehabu.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/m1911.ogg b/sound/weapons/gun/pistol/m1911.ogg deleted file mode 100644 index 1d7a88dbbdc0..000000000000 Binary files a/sound/weapons/gun/pistol/m1911.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/m1911_cocked.ogg b/sound/weapons/gun/pistol/m1911_cocked.ogg deleted file mode 100644 index b1daedcbf00f..000000000000 Binary files a/sound/weapons/gun/pistol/m1911_cocked.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/m1911_reload.ogg b/sound/weapons/gun/pistol/m1911_reload.ogg deleted file mode 100644 index 5dbd7368bda6..000000000000 Binary files a/sound/weapons/gun/pistol/m1911_reload.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/m1911_unload.ogg b/sound/weapons/gun/pistol/m1911_unload.ogg deleted file mode 100644 index 1cabe5cd2b86..000000000000 Binary files a/sound/weapons/gun/pistol/m1911_unload.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/mag_insert.ogg b/sound/weapons/gun/pistol/mag_insert.ogg index 0791490c6889..42a05ebc483f 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 deleted file mode 100644 index c442f8b16277..000000000000 Binary files a/sound/weapons/gun/pistol/mag_insert_alt.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/mag_release.ogg b/sound/weapons/gun/pistol/mag_release.ogg index 757168fcf1b4..cccbf5f9d914 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 deleted file mode 100644 index 334d1a12f299..000000000000 Binary files a/sound/weapons/gun/pistol/mag_release_alt.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/rack.ogg b/sound/weapons/gun/pistol/rack.ogg index ff2512af27a5..fd0408d8ff2e 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 a9ab76f14283..f33db717db82 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 1bbd95e405bc..a808f8690730 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 deleted file mode 100644 index b56abbcf1583..000000000000 Binary files a/sound/weapons/gun/revolver/cattleman.ogg and /dev/null differ diff --git a/sound/weapons/gun/revolver/revolver_prime.ogg b/sound/weapons/gun/revolver/revolver_prime.ogg deleted file mode 100644 index 5391854fbee3..000000000000 Binary files a/sound/weapons/gun/revolver/revolver_prime.ogg and /dev/null differ diff --git a/sound/weapons/gun/revolver/shot.ogg b/sound/weapons/gun/revolver/shot.ogg index d02d1c750c24..91e480bd152a 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 deleted file mode 100644 index 4beb4d1e4648..000000000000 Binary files a/sound/weapons/gun/revolver/shot_hunting.ogg and /dev/null differ diff --git a/sound/weapons/gun/revolver/shot_light.ogg b/sound/weapons/gun/revolver/shot_light.ogg deleted file mode 100644 index 68b7fada6e49..000000000000 Binary files a/sound/weapons/gun/revolver/shot_light.ogg and /dev/null differ diff --git a/sound/weapons/gun/revolver/shot_old_new.ogg b/sound/weapons/gun/revolver/shot_old_new.ogg deleted file mode 100644 index 91e480bd152a..000000000000 Binary files a/sound/weapons/gun/revolver/shot_old_new.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/ak47_cocked.ogg b/sound/weapons/gun/rifle/ak47_cocked.ogg deleted file mode 100644 index 5f2d32e31eaf..000000000000 Binary files a/sound/weapons/gun/rifle/ak47_cocked.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/ak47_reload.ogg b/sound/weapons/gun/rifle/ak47_reload.ogg deleted file mode 100644 index 9105d5c31c16..000000000000 Binary files a/sound/weapons/gun/rifle/ak47_reload.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/ak47_unload.ogg b/sound/weapons/gun/rifle/ak47_unload.ogg deleted file mode 100644 index f6b5c73d7f6b..000000000000 Binary files a/sound/weapons/gun/rifle/ak47_unload.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/ar_cock.ogg b/sound/weapons/gun/rifle/ar_cock.ogg deleted file mode 100644 index ac02ed93c1d7..000000000000 Binary files a/sound/weapons/gun/rifle/ar_cock.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/ar_reload.ogg b/sound/weapons/gun/rifle/ar_reload.ogg deleted file mode 100644 index 6e557b892a97..000000000000 Binary files a/sound/weapons/gun/rifle/ar_reload.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/ar_unload.ogg b/sound/weapons/gun/rifle/ar_unload.ogg deleted file mode 100644 index 591599f52334..000000000000 Binary files a/sound/weapons/gun/rifle/ar_unload.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/m16_cocked.ogg b/sound/weapons/gun/rifle/m16_cocked.ogg deleted file mode 100644 index 8d2e059efaa7..000000000000 Binary files a/sound/weapons/gun/rifle/m16_cocked.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/m16_reload.ogg b/sound/weapons/gun/rifle/m16_reload.ogg deleted file mode 100644 index b2666ca96fe7..000000000000 Binary files a/sound/weapons/gun/rifle/m16_reload.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/m16_unload.ogg b/sound/weapons/gun/rifle/m16_unload.ogg deleted file mode 100644 index d302e5a26748..000000000000 Binary files a/sound/weapons/gun/rifle/m16_unload.ogg and /dev/null differ diff --git a/sound/weapons/gun/shotgun/insert_shell.ogg b/sound/weapons/gun/shotgun/insert_shell.ogg index cd5c5e31aa67..5b2c6cdc5003 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 865dbef3d06e..c25a10ffa494 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 deleted file mode 100644 index 0f106fe85ab1..000000000000 Binary files a/sound/weapons/gun/shotgun/rack_alt.ogg and /dev/null differ diff --git a/sound/weapons/gun/smg/smg_reload.ogg b/sound/weapons/gun/smg/smg_reload.ogg deleted file mode 100644 index 4e7b8f7ea91e..000000000000 Binary files a/sound/weapons/gun/smg/smg_reload.ogg and /dev/null differ diff --git a/sound/weapons/gun/smg/smg_unload.ogg b/sound/weapons/gun/smg/smg_unload.ogg deleted file mode 100644 index 677b5a8f3d29..000000000000 Binary files a/sound/weapons/gun/smg/smg_unload.ogg and /dev/null differ diff --git a/sound/weapons/gun/smg/smgrack.ogg b/sound/weapons/gun/smg/smgrack.ogg index 57ef99a0c5ca..95f5a5f9c843 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 deleted file mode 100644 index 0168613ce872..000000000000 Binary files a/sound/weapons/gun/smg/uzi.ogg and /dev/null differ diff --git a/sound/weapons/gun/smg/uzi_cocked.ogg b/sound/weapons/gun/smg/uzi_cocked.ogg deleted file mode 100644 index 8cbe23b017b0..000000000000 Binary files a/sound/weapons/gun/smg/uzi_cocked.ogg and /dev/null differ diff --git a/sound/weapons/gun/smg/uzi_reload.ogg b/sound/weapons/gun/smg/uzi_reload.ogg deleted file mode 100644 index 8dae035f65e2..000000000000 Binary files a/sound/weapons/gun/smg/uzi_reload.ogg and /dev/null differ diff --git a/sound/weapons/gun/smg/uzi_unload.ogg b/sound/weapons/gun/smg/uzi_unload.ogg deleted file mode 100644 index b285b71ac3a0..000000000000 Binary files a/sound/weapons/gun/smg/uzi_unload.ogg and /dev/null differ diff --git a/sound/weapons/gun/smg/vector_fire.ogg b/sound/weapons/gun/smg/vector_fire.ogg deleted file mode 100644 index 05c797c1464b..000000000000 Binary files a/sound/weapons/gun/smg/vector_fire.ogg and /dev/null differ diff --git a/strings/names/golem.txt b/strings/names/golem.txt new file mode 100644 index 000000000000..7cfcefa899da --- /dev/null +++ b/strings/names/golem.txt @@ -0,0 +1,157 @@ +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 56951b14846f..2477641c7e79 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": "^1.6.0", + "axios": "^0.21.1", "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 a4e0b48d42bc..63fb2774849f 100644 --- a/tgui/packages/tgui-panel/themes.js +++ b/tgui/packages/tgui-panel/themes.js @@ -49,12 +49,10 @@ 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', - 'lore.background-color': 'none', - 'lore.text-color': '#000000', + 'forum.background-color': 'none', + 'forum.text-color': '#000000', 'github.background-color': 'none', 'github.text-color': '#000000', 'report-issue.background-color': 'none', @@ -103,12 +101,10 @@ 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, - 'lore.background-color': '#494949', - 'lore.text-color': COLOR_DARK_TEXT, + 'forum.background-color': '#494949', + 'forum.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 051fb8f1defc..fe6d4a056ac9 100644 --- a/tgui/packages/tgui/interfaces/ScannerGate.js +++ b/tgui/packages/tgui/interfaces/ScannerGate.js @@ -68,6 +68,17 @@ 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 ( @@ -107,6 +118,10 @@ const SCANNER_GATE_ROUTES = { title: 'Scanner Mode: Species', component: () => ScannerGateSpecies, }, + Nutrition: { + title: 'Scanner Mode: Nutrition', + component: () => ScannerGateNutrition, + }, Nanites: { title: 'Scanner Mode: Nanites', component: () => ScannerGateNanites, @@ -162,6 +177,10 @@ const ScannerGateOff = (props, context) => { content="Species" onClick={() => act('set_mode', { new_mode: 'Species' })} /> +